Что нового

[Сеть, интернет] Определить статусы в mail.ru агенте

sxaner

Новичок
Сообщения
4
Репутация
0
AutoIt: 3.3.*
Версия: 1.0
Категория: Сеть, Элементы GUI
Описание: Определение статусов :Оффлайн,Онлайн,Отошел. Не определяет Невидим и Скрыт от просмотра! (Оба как Оффлайн)

Код:
Код:
#include <GuiConstantsEx.au3>
#include <Inet.au3>
#include <GuiEdit.au3>
GUICreate("Определить статусы", 400, 400)
$guimail = GUICtrlCreateEdit("[email protected]" & @CRLF & "[email protected]" & @CRLF & "[email protected]" & @CRLF & "[email protected]" & @CRLF & "[email protected]" & @CRLF & "[email protected]", 2, 2, 200, 300)
$result = GUICtrlCreateEdit("Результат", 200, 2, 200, 300)
$ok = GUICtrlCreateButton("Получить", 50, 320)
$mexit = GUICtrlCreateButton("Выход", 250, 320)
GUISetState()
While 1
    $Msg = GUIGetMsg()
    Switch $Msg
        Case $mexit, $GUI_EVENT_CLOSE
            ExitLoop

        Case $ok
            $stroki = _GUICtrlEdit_GetLineCount ($guimail)
            $all = ''
            ;
            For $i = 0 To $stroki - 1 Step 1
                $mail = _GUICtrlEdit_GetLine ($guimail, $i)
                $URL = 'http://status.mail.ru/batch.js?' & $mail
                $stat = StringMid(_INetGetSource($URL), 14, 1)
                Select
                    Case $stat = 0
                        $status = "Оффлайн"
                    Case $stat = 1
                        $status = "Онлайн"
                    Case $stat = 2
                        $status = "Отошел"
                EndSelect
                $all = $all & $status & @CRLF
            Next
            GUICtrlSetData($result, $all)
    EndSwitch
WEnd
Exit

Файл:
http://files.mail.ru/7ZYTPM

Снимок:


История версий:
v1.0
* Первый релиз.

Источник: http://autoit-script.ru
Автор(ы): sXaNeR
 

madmasles

Модератор
Глобальный модератор
Сообщения
7,790
Репутация
2,322
sxaner
А зачем
Код:
;...
TCPStartup()
;...
TCPShutdown()
;...
 

Garrett

Модератор
Локальный модератор
Сообщения
3,999
Репутация
967
sxaner пожалуйста, старайтесь придерживаться правил оформления тем в этом разделе.
Правила обязательного оформления публикаций
На первый раз я поправил.

P.S. IMHO это тянет больше на функцию. Я полагаю, если это дело оформить в отдельную функцию, то получится неплохая "Полезняшка"
 

Garrett

Модератор
Локальный модератор
Сообщения
3,999
Репутация
967
sxaner [?]
А зачем
Selecthttp://autoit-script.ru/index.php?action=post;msg=25659;topic=3587.0;afba3c34=05e1b776db25a763380a891bba6e20ab

Прошу прощения это моя ошибка. Поправил.
 

Dark-Side

Знающий
Сообщения
72
Репутация
17
Немного переработал код. Теперь программа работает быстрее за счет всего лишь одного обращения к сайту, вместо множества.

Код:
#include <GuiConstantsEx.au3>
#include <Inet.au3>
#include <GuiEdit.au3>
GUICreate("Определить статусы", 400, 400)
$guimail = GUICtrlCreateEdit("[email protected]" & @CRLF & "[email protected]" & @CRLF & "[email protected]" & @CRLF & "[email protected]" & @CRLF & "[email protected]" & @CRLF & "[email protected]", 2, 2, 200, 300)
$result = GUICtrlCreateEdit("Результат", 200, 2, 200, 300)
$ok = GUICtrlCreateButton("Получить", 50, 320)
$mexit = GUICtrlCreateButton("Выход", 250, 320)
GUISetState()
While 1
    $Msg = GUIGetMsg()
    Switch $Msg
        Case $mexit, $GUI_EVENT_CLOSE
            Exit
        Case $ok
			_Check ()
    EndSwitch
WEnd

Func _Check ()
	Local $all, $status
	$mails = StringReplace (_GUICtrlEdit_GetText ($guimail), @CRLF, ",")
	$URL = 'http://status.mail.ru/batch.js?' & $mails
	$temp = StringLeft (_INetGetSource($URL), StringLen(_INetGetSource($URL)) - 4)
	$statuses = StringMid($temp, 14, StringLen ($temp))
    For $i = 1 To StringLen($statuses)
		$stat = StringMid($statuses,$i, 1)
		Switch $stat
			Case "0"
				$status = "Оффлайн"
			Case "1"
				$status = "Онлайн"
			Case "2"
				$status = "Отошел"
		EndSwitch
		$all = $all & $status & @CRLF
	Next
	GUICtrlSetData($result, $all)
EndFunc
 

Garrett

Модератор
Локальный модератор
Сообщения
3,999
Репутация
967
Dark-Side [?]
Немного переработал код.
Странное заявление :blink:
Полагаю вам Dark-Side было бы лучше написать свою работу с нуля, и опубликовать. В этом случае, у пользователей был бы выбор.
У этой работы IMHO есть автор.
 
Автор
S

sxaner

Новичок
Сообщения
4
Репутация
0
Автор претензий не имеет ;D Естественно, через получение массива с сайта за один раз будет быстрее. Учту в следующий раз; пишу скрипт для автоматического добавления пользователя в контакт-лист без его согласия о принятия авторизации :smile: Готова версия в JavaScript. Кто желает помочь с AutoIt-версией, пожалуйста, пишите мне zur2stаtоr@mаil.ru.
 

Dark-Side

Знающий
Сообщения
72
Репутация
17
Garrett сказал(а):
Странное заявление
Полагаю вам Dark-Side было бы лучше написать свою работу с нуля, и опубликовать. В этом случае, у пользователей был бы выбор.
У этой работы IMHO есть автор.
Просто предложение по улучшению программы с открытым исходным кодом. Не вижу ничего плохого в том, чтобы кому-нибудь в чем-нибудь помочь.
 

Garrett

Модератор
Локальный модератор
Сообщения
3,999
Репутация
967
Dark-Side [?]
Не вижу ничего плохого в том, чтобы кому-нибудь в чем-нибудь помочь.
Я тоже не вижу ничего плохого, если тот кому хочешь помочь, не имеет ничего против этой самой помощи!
А для этого, как минимум нужно связаться с автором, и спросить его об этом!
 

Dark-Side

Знающий
Сообщения
72
Репутация
17
Garrett сказал(а):
А для этого, как минимум нужно связаться с автором, и спросить его об этом!
У меня желание пропадет помогать :rofl: Надо быстрее помогать человеку пока оно есть ;D
 

e-Mike

Новичок
Сообщения
15
Репутация
1
Интересный скрипт, а откуда узнал про batch.js ?
В скрипте два раза запрашивается получение одной и той же ссылки, я бы переделал эти две строчки:
Код:
$URL = _INetGetSource('http://status.mail.ru/batch.js?' & $mails)
$temp = StringLeft ($URL, StringLen($URL) - 4)

К слову, я тоже заморачивался подобной задачей, но решил ее проще - через HTML и ссылки на значок статуса:
Код:
<img src="http://status.mail.ru/[email protected]">  Служба поддержки
 
Верх