Exemplo n.º 1
0
async def _telegram(request, payload, hang):
    from pytg.sender import Sender
    sender = Sender(host="localhost", port=4458)
    matches = await prepare(ujson.loads(request.form['matches'][0]))
    porters = [porter['porter'] for porter, paths in matches]
    porters = await config.users.find({
        'hang': hang,
        'user': {
            '$in': porters
        },
        'phone': {
            '$exists': True
        }
    }).to_list(None)
    contacts = {porter['user']: porter['phone'] for porter in porters}
    bag = set()
    for porter, (path, ) in matches:
        phone = contacts[porter['porter']]
        if phone not in bag:
            bag.add(phone)
            name = sender.contact_add(phone, phone, "")[0]['print_name']
            for i, point in enumerate(
                    path['points'][:int(len(path['points']) / 2)]):
                sender.send_msg(name, point['name'])
                sender.send_location(name, *path['points'][-i - 1]['location'])

    return json({'SUCCESS': True})
Exemplo n.º 2
0
class Checker:
    def __init__(self):
        self.sender = Sender("127.0.0.1", 4458)

    def check_a_number(self, phonenumber):
        result = {
            'phone': phonenumber,
            'registered': "NULL",
            'chat_id': "NULL",
            'username': "******",
            'check_time': "NULL",
            'error_on_get': "NULL"
        }
        try:
            res = self.sender.contact_add(phonenumber, "check", "contact")
            result['check_time'] = time.ctime(
            )  # save the time that number checked
            if res == []:  # not registered
                result['registered'] = "False"

            elif len(res) >= 1:  # user registered on telegram
                print((res))
                r = res[0]
                result['registered'] = "True"
                result['chat_id'] = r.peer_id
                if hasattr(r, 'username'):
                    result['username'] = r.username
        except NoResponse:
            print("CLI did not responded in time")
            result['error_on_get'] = "No respond error"

        return result

    def check_range(self, area_code, start_range, end_range):
        start = start_range
        end = end_range + 1
        for x in range(start, end):
            phone = area_code + str(x)[1:7]
            time.sleep(configs.timout_to_next)  # time out
            result = self.check_a_number(phone)
            if result['error_on_get'] == "NULL":  # there is no error
                db.save(result['phone'], result['registered'],
                        result['chat_id'], result['username'],
                        result['check_time'])
                print("the " + result['phone'] +
                      " checked and saved to database")
            else:
                # guess telegram banned us
                # so sleep for a while
                print("Warning: it seems we are banned from telegram server!")
                print("wait for a moments...")
                time.sleep(configs.timeout_on_no_res)

        print("checking loop ended.")
Exemplo n.º 3
0
from pytg.sender import Sender
from pytg.receiver import Receiver
import json
receiver = Receiver(host="localhost", port=4458)
sender = Sender(host="localhost", port=4458)

name = sender.contact_add("+989133657623", "+989133657623",
                          "")[0]['print_name']
print(sender.send_msg(name, "hi h hi"))
print(sender.send_location(name, 31., 53.))