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})
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.")
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.))