1

Тема: [autoIt3] Повідомлення про нові повідомлення на Реплейсі.

От в змові з адміністрацією накидав прожку на автоіт3.
Повідомляє про нові повідомлення з реплейсу. Тестив на Windows 7 х64, як Вам треба щось інакше можете самі дописати/переписати.

Код (версія 1.02b 05.01.15)
;ReplaceNewPosts2. Author Chemist. License GNU GPL v3
;Version 1.02 beta

;=== history ===
;Version 1.02 beta
;05.01.15 16:40
;Refactoring code
;If error of connection now showing splash window insted messageBox

;Version 1.01 beta
;24.12.14 03:54
;fix function show splash window. When window splashing if mouse was been on window - window not close

;Version 1.00 beta
;15.12.14 06:33

;Version 0.01 alpha
;15.12.14 02:52
;Start project

;compiler options
#pragma compile(Icon, C:\Program Files (x86)\AutoIt3\Icons\au3.ico)
#pragma compile(UPX, True)
#pragma compile(ProductName, ReplaceNewPostByChemist)
#pragma compile(ProductVersion, 1.02b)
#pragma compile(FileVersion, 1.02.0, 1.02) ; The last parameter is optional
#pragma compile(FileDescription, ReplaceNewPost - sipmle replace.org.ua notifier)
#pragma compile(LegalCopyright, © Chemist)
#pragma compile(LegalTrademarks, 'No trademark')
#pragma compile(CompanyName, 'Chemist')


;Check page address
Global Const $SiteAddress = "http://replace.org.ua/extern.php?sort=last_post&show=1"

; delays
Global Const $delay1 = 20 * 1000; ;20 sec,
Global Const $delay2 = 30 * 1000; ;30 sec
Global Const $delay3 = 5 * 60 * 1000; ;5 minutes, 300 sec
Global Const $delay4 = 10 * 60 * 1000; ;10min; 600 sec

; info window show time
Global Const $splashTime = 5 * 1000; ;5 minutes

;Global Const $debugX = true;
Global Const $debugX = false;

; reserved option
Global Const $ShowDetailInfo = false;



Func GetPage()
    Local $PageHTML = "";

    if $debugX Then
        ;
    Else
        ; Get html page
        ; Create Obj
        ; GET   http://brugbart.com/http-get-request-autoit
        ; POST  http://brugbart.com/http-post-request-autoit
        $oHTTP = ObjCreate("winhttp.winhttprequest.5.1")
        $oHTTP.Open("GET", $SiteAddress, False)

        $oHTTP.Send()
        $PageHTML = $oHTTP.ResponseText
        Local $oStatusCode = $oHTTP.Status
        ; end

        ; all http status:
        ; http://msdn.microsoft.com/ru-ru/library/windows/desktop/aa383887%28v=vs.85%29.aspx
        if $oStatusCode <> 200 Then
            Return "Error";
        EndIF
    EndIF

    Return $PageHTML
EndFunc ;GetPage()


Func ShowMessageX($message)
    ; MsgBox(0, "Replace new post", $str2)


    SplashTextOn("Replace new post", "<<<<<REPLACE.ORG.UA>>>>>" & @CRLF & @CRLF & $message, 300, 100, @DesktopWidth-300-10, @DesktopHeight-100-10-40, (1 + 4), "", 10)
    Local $aPos
    sleep(1000);

    local $RectLeft = @DesktopWidth-300-10
    local $RectRigth = @DesktopWidth-10
    Local $RectTop = @DesktopHeight-100-10-40
    Local $RectDown = @DesktopHeight-10-40

    Local $onForm = false

    While (1)
        $aPos = MouseGetPos()
        if (($aPos[0] > $RectLeft) and ($aPos[0] <= $RectRigth) _
        and ($aPos[1] > $RectTop) and ($aPos[1] <= $RectDown)) Then
            if ($onForm) Then
                ExitLoop;
            Endif
        Else
            $onForm = true;
        EndIf

        sleep(50);
    WEnd
    SplashOff()
Endfunc ;ShowMessage()


Func Check()
    Local $tmpStr1 = GetPage()

    if $tmpStr1 = "Error" Then
        ShowMessageX("Connection error!")
        Return 1
    EndIF


    while (1)
        $delayX = $delay2; 

        sleep($delayX)
        $tmpStr2 = GetPage();

        if $tmpStr2 = "Error" Then
            ShowMessageX("Connection error!")
            ExitLoop;
        EndIF        

        if ($tmpStr2 <> '') and ($tmpStr1 <> $tmpStr2) Then
            If $ShowDetailInfo Then
                ;do something
            Else
                ShowMessageX("New Message")
            EndIf            

            ExitLoop;
        EndIf

    WEnd;

    Return 1
EndFunc ;Check()


;Entry point

while (1)
    Check();
WEnd

Технічні дані:

Інтервал опиту наразі 30 секунд.
Прибрати вікно можна, якщо навести на нього мишку.
Працює наступним чином:
запит оцієї сторінки, як 30 секунд назад вона була така сама, нічого не робимо, а от як інакша - виводимо повідомлення зправа внизу.


Бінарник внизу.

Post's attachments

ReplaceNewPosts2_1.02b.zip 356.04 kb, 393 downloads since 2015-01-05 

Подякували: 0xDADA11C7, Replace, quez, VTrim, Joker, Q-bart, leofun017

2

Re: [autoIt3] Повідомлення про нові повідомлення на Реплейсі.

Global Const $delay1 = 1000;
Global Const $delay1 = 20 * 1000;

Це так і має бути? А то якось дивно виглядає.

3

Re: [autoIt3] Повідомлення про нові повідомлення на Реплейсі.

quez написав:
Global Const $delay1 = 1000;
Global Const $delay1 = 20 * 1000;

Це так і має бути? А то якось дивно виглядає.

Ні, там отаке

;Global Const $delay1 = 1000;
Global Const $delay1 = 20 * 1000; ;20 sec, 

В автоіт коментарі це точка із комою.

4

Re: [autoIt3] Повідомлення про нові повідомлення на Реплейсі.

Chemist-i написав:
quez написав:
Global Const $delay1 = 1000;
Global Const $delay1 = 20 * 1000;

Це так і має бути? А то якось дивно виглядає.

Ні, там отаке

;Global Const $delay1 = 1000;
Global Const $delay1 = 20 * 1000; ;20 sec, 

В автоіт коментарі це точка із комою.

А, ну тоді все ок.

Але мені більше подобається ідея розширення для браузера. Зараз покурю SDK, може й народжу щось.

Подякували: Chemist-i1

5

Re: [autoIt3] Повідомлення про нові повідомлення на Реплейсі.

quez написав:
Chemist-i написав:
quez написав:
Global Const $delay1 = 1000;
Global Const $delay1 = 20 * 1000;

Це так і має бути? А то якось дивно виглядає.

Ні, там отаке

;Global Const $delay1 = 1000;
Global Const $delay1 = 20 * 1000; ;20 sec, 

В автоіт коментарі це точка із комою.

А, ну тоді все ок.

Але мені більше подобається ідея розширення для браузера. Зараз покурю SDK, може й народжу щось.

якщо то буде для хрому, то зробіть щось типу статті, а то я колись проклинав розробників хрому, за такий дибільний api

6

Re: [autoIt3] Повідомлення про нові повідомлення на Реплейсі.

Ні, для лисиці.
Я зараз проклинаю дебільний джаваскріпт.
Якщо осилю, то зроблю статтю.

Подякували: Chemist-i1

7

Re: [autoIt3] Повідомлення про нові повідомлення на Реплейсі.

Оновлено версію. 1.02b. Від сьогодні. В першому повідомленні теми.
Зміни:

  • Рефакторинг коду;

  • Коментарі;

  • При проблемах із з'єднанням вікно тепер типу splash (зправа внизу), а не MessageBox як було раніше;

Подякували: leofun011