1
Использование / Чтение СМС с последующим фильтром нужной цифры
« on: May 03, 2021, 10:59:54 AM »
Уже не первый день колдую с попытками прочитать СМС и отфильтровать именно нужную цифру.
Идея такая: кликер должен принять СМС от сбербанка вида "ECMC1111 19:55 зачисление 777.77р Баланс: 1000.77р" (суммы могут быть и целыми) и работать именно с зачисленной суммой.
Что удалось наработать:
1. Сим-карта стоит в модеме huawei hilink (COM-порты закрыты), можно зайти непосредственно на страницу сообщений http://192.168.5.1/html/smsinbox.html и открыть сообщение, либо скопировать текст сразу в окне. Привязаться к окну открытого сообщения у меня не получилось. В общем, способ работы через веб-интерфейс я пока отмел.
2. Простым скриптом для PhantomJS можно вытянуть весь код страницы (около 250 строк кликером насчитал), в котором будет так же и текст сообщения.
Потом кликером можно вытащить именно нужную строчку в отдельный файл.
Результат получается примерно такой:
И именно "ение 500" - это "зачислено 500".
Проблем, собственно, пока две:
1. Как наладить фильтр именно на нужную сумму
2. Как удалить СМС после прочтения (я смотрел в сторону adb команд, но пока не нашел ответа)
Идея такая: кликер должен принять СМС от сбербанка вида "ECMC1111 19:55 зачисление 777.77р Баланс: 1000.77р" (суммы могут быть и целыми) и работать именно с зачисленной суммой.
Что удалось наработать:
1. Сим-карта стоит в модеме huawei hilink (COM-порты закрыты), можно зайти непосредственно на страницу сообщений http://192.168.5.1/html/smsinbox.html и открыть сообщение, либо скопировать текст сразу в окне. Привязаться к окну открытого сообщения у меня не получилось. В общем, способ работы через веб-интерфейс я пока отмел.
2. Простым скриптом для PhantomJS можно вытянуть весь код страницы (около 250 строк кликером насчитал), в котором будет так же и текст сообщения.
Потом кликером можно вытащить именно нужную строчку в отдельный файл.
Code: [Select]
$str2 = "ение" // слово для поиска (кодировка сбивается, но для фильтрации норм)
FOR($a=1,$a<TFCOUNT ("D:\CLICKER32\phantomjs\bin\192168.txt"))
$str = TFREAD ("D:\CLICKER32\phantomjs\bin\192168.txt", $a)
IF(STRPOS($str, $str2) > 0)
TFWRITE("D:\CLICKER32\phantomjs\bin\output.txt", $str)
//TOCLIP($str)
END_IF
print("cycle")
print($str)
END_CYC
print("end")
HALT
Результат получается примерно такой:
Code: [Select]
<script type="text/javascript">create_button(sms_label_new_message,'message');</script><span class="button_wrapper" id="span_message"><input id="message" class="button_dialog " type="button" value="Новое сообщение"></span>
</tr><tr class="sms_list_tr"><td width="50" class="sms_td"><input type="checkbox" name="checkbox" value="40000"></td><td class="td_pl sms_phone_width"><table border="0" cellpadding="0" class="sms_msg" cellspacing="0"><tbody><tr><td><span id="smsReadStates40000" class="msg_icon read_state1 "> </span></td><td class="sms_phone_number">+79275195391;<br></td></tr></tbody></table></td><td class="td_pl sms_content_width"><pre class="sms_content clr_blue_a">Привет зачисление 500 рублей пока</pre></td><td class="td_pl sms_date_width"><label>2021-05-02 14:08:15</label></td></tr>
И именно "ение 500" - это "зачислено 500".
Проблем, собственно, пока две:
1. Как наладить фильтр именно на нужную сумму
2. Как удалить СМС после прочтения (я смотрел в сторону adb команд, но пока не нашел ответа)