Auf einen bestimmten Preis prüfen

Top  Previous  Next

Dieses Beispiel extrahiert einen bestimmten Preis von einer vorgegebenen Seite und meldet nur dann ein Update, falls der Preis kleiner einem vorgegebenen Preis ist. Das Auslesen eines Preises ist von der jeweiligen Seite abhängig und muss individuell angepasst werden, der folgende Beispielcode kann dabei als Starthilfe dienen.

 

Eine Alternative für dieses Plugin könnte die regexcmp Funktion sein, die in Ignorieren-Filter, Überwachen-Filter sowie in der Keywords Funktionalität verwendet werden kann.

 

Sub ExtractPrice($sMem, ByRef $nPrice)

   

   Dim $p, $nLen

   

   $nPrice = -1

   $sMem = DeleteHtmlTags($sMem)

   ' Extract price without decimal places

   If FindRegex($sMem, "Price:\s*EUR\s*\d+,", $p, $nLen) Then

      $sMem = ExtractDigits(Copy($sMem, $p, $nLen))

      $nPrice = CInt($sMem)

   End If

End Sub

 

'*******************************************************************************

 

Sub Wsw_CompareVersions(ByRef $sMemWeb, ByRef $sMemLocal, ByRef $sStatusMessage, ByRef $iStatusCode)

   

   Dim $nPriceNew, $nPriceOld, $nPriceRef

   

   ' Define reference price (100 EUR)

   $nPriceRef = 100

   

   ' Extract price from new/local version

   ExtractPrice($sMemWeb, $nPriceNew)

   ExtractPrice($sMemLocal, $nPriceOld) ' only needed to speed up several WSW routines

   

   ' Return only price - speed up several WSW routines, eg. "Test filter" dialog or "Analyze" functionality

   $sMemWeb = CStr($nPriceNew)

   $sMemLocal = CStr($nPriceOld)

   

   If $nPriceNew = -Then

      $iStatusCode = 2

      $sStatusMessage = "Error extracting price"

   ElseIf ($nPriceNew <> $nPriceOld) And ($nPriceNew <= $nPriceRef) Then

      $iStatusCode = 1

      $sStatusMessage = "Price changed and lower than EUR " + CStr($nPriceNew)

   ElseIf ($nPriceNew <> $nPriceOld) And ($nPriceNew > $nPriceRef) Then

      $iStatusCode = 0

      $sStatusMessage = "Price too high"

   Else

      $iStatusCode = 0

      $sStatusMessage = "Price unchanged"

   End If

End Sub