Monday, October 16, 2017

Merge Pages: No param in URLs

User question:
> I have a page with the format http://www.domain.com/match and want 
> to merge with sub pages. The sub pages have the format 
> http://www.domain.com/match/page/2 
> http://www.domain.com/match/page/3 and so on. How can I do that 
> since the Merge feature only supports URLs with parameters.

If the sub pages don't have parameters (such as &page=NN) then you have to create a private plugin to merge these pages into a single page. The source code below will work with the URL syntax in the provided example:


Sub Wsw_MergePages(Handle, ..........)

   Dim nParamPageNumber, sFilename

   If nPageNumber > 5 Then
      Return
   End If

   sFilename = GetFirstRegexMatch(sUrl, "page\/\d+")
   If sFilename = "" Then
      nParamPageNumber = 2
   Else
      sUrl = ReplaceText(sUrl, sFilename, "")
      nParamPageNumber = CInt(ExtractDigits(sFilename)) + 1
   End If
   sFilename = "page/" + CStr(nParamPageNumber)
   sUrl = sUrl + AddSlash(sFilename)
               
   If Pos(sUrl, sMemWeb) > 0 Then
      sStatusMessage = "New page via Merge-Plugin"
      sNewUrl = sUrl
   Else
      sStatusMessage = "Merge-Plugin executed"
   End If
End Sub

Tuesday, October 3, 2017

WebSite-Watcher under Mac or Linux

We are often asked for a Mac or Linux version of WebSite-Watcher. Fact is that WebSite-Watcher is a Windows software and we always recommended to use a Virtual Machine to run WebSite-Watcher on a Mac or Linux. But this also require licenses for a Windows version and a Virtual Machine.

Today we received the following information from a user:

I am sure you might get questions about your tool working on Mac and Linux or some people who would like for you to say that they would like it under Mac or Linux. Now you can tell them that it works under CrossOver.
https://www.codeweavers.com

CrossOver officially lists WebSite-Watcher in their supported software list at
https://www.codeweavers.com/compatibility/search?name=website-watcher

Wednesday, September 20, 2017

CSV file with references to checked bookmarks

User question:
> I'm trying to find out if there is a way to have Website-Watcher 
> create a file that would consist of information about bookmarks 
> where an update is detected.  I'm sure there must be a way to do 
> this but after looking at the help document and the forums for a 
> while I wasn't able to figure it out.  I run a daily check of all my 
> bookmarks and I would like that check to produce an excel or CSV 
> file that contained the URL, the three Info Fields, a path to the 
> highlighted version of the page and the date and time of the check.  
> Is there a way to do that? 

yes, you can use the Report/Export feature (Tools menu) to generate a CSV file with that information.

First you have to create a CSV template with a text editor, this template must contain the fields you want to export. An example template can be found at http://www.aignes.com/wswhelp/help_report_examplecsv.htm

Supported variables can be found at http://www.aignes.com/wswhelp/help_report_datafieldbookmarks.htm

In your case you would need the variables:
{wsw_url_url}
{wsw_url_field1}
{wsw_url_field2}
{wsw_url_field3}
{wsw_url_path_filename_chg}
{wsw_url_date_checked}

Monday, September 11, 2017

Monitor data in drop down boxes

User question:
> I monitor a page that has important information in drop down boxes. 
> I know there is a plugin to only monitor the OPTION tags, but I also 
> need the information that is displayed in the page. Any way to do 
> this?

One way would be to duplicate the bookmark and check one copy with the plugin "Monitor OPTION tags", but this is definitely not an elegant solution.

What I would recommend is to use a private plugin that eliminates the drop down boxes and inserts the entries of the drop down boxes as data into the web page. Then you have both, the page content and the drop down box entries. Here's a plugin code that you can use as starting point.

1. Open the bookmark properties
2. Select the Advanced tab
3. Select "Plugin" on the left side
4. Click the button "Create Private Plugin"
5. Enter the following plugin code

Sub Wsw_PreProcessPage(Handle, ByRef sMemWeb, ByRef sStatusMessage, ByRef iStatusCode)
   sMemWeb = ReplaceWildcard(sMemWeb, "<option*>", "(")
   sMemWeb = ReplaceWildcard(sMemWeb, "</option*>", ") ")
   sMemWeb = DeleteAllWildcardMatches(sMemWeb, "<select*>")
   sMemWeb = DeleteAllWildcardMatches(sMemWeb, "</select*>")
End Sub



Monday, August 28, 2017

Number of simultaneous connections

User question:
> Can you tell me how many connections WSW can make to check at the 
> same time? I have noticed that my version is only ever checking 3 
> different url's at once.

You can have max 10 simultaneous connections, this can be configured in the program configuration:

1. Open the program configuration
2. Click the "Check" tab
3. Click the "Connection..." button


Wednesday, August 16, 2017

Send mail via Yahoo

User question:
> I'm trying to send a test mail via my yahoo account, but I always 
> get the following error:
> 2017-07-25 12:24:19 - WSW> WebSite-Watcher 2017 (17.1)
> 2017-07-25 12:24:19 - WSW> Begin Login POP3
> 2017-07-25 12:24:19 - < +OK Hello from jpop-0.1
> 2017-07-25 12:24:19 - > USER **********
> 2017-07-25 12:24:19 - < +OK Password required.
> 2017-07-25 12:24:19 - > PASS **********
> 2017-07-25 12:25:19 - WSW> Result = 10
> 2017-07-25 12:25:19 - WSW> Login POP3 - ERROR

We could send a test mail with the following configuration. It seems that a login to the POP3 server is not required, but it also works with the configuration in the screenshot below.


Wednesday, July 26, 2017

Plugin: Escape certain characters

User question:
> I'm writing a plugin and need to escape certain characters in an 
> URL. Is there a function available to escape characters?

No, there's no built in function available.
Here's a small function that you can use as starting point to escape certain characters:

Function EscapeChars(s As String) As String
   Dim i, s2
   s2 = ""
   For i = 1 To Length(s)
      If Pos(LowerCase(s[i]), "abcdefghijklmnopqrstuvwxyz0123456789%.") > 0 Then
         s2 = s2 + s[i] 
      Else
         s2 = s2 + "%" + IntToHex(Ord(s[i]), 2)
      End If
   Next
   Return s2
End Function

Usage:
s = EscapeChars("http://www.domain.com/image.jpg")

Result:
s = http%3A%2F%2Fwww.domain.com%2Fimage.jpg