Exemplo n.º 1
0
def main():

    init(autoreset=True)
    bot = os.getenv('BOT', 'tensio2bot')

    # bot = "TensioBot"
    # bot = "tensio2bot"
    sender = Sender("127.0.0.1", 9009)

    res = sender.msg(bot, "/cancel")
    time.sleep(3)
    res = sender.msg(bot, "/cambiar")
    time.sleep(3)
    res = sender.msg(bot, "Sí")
    time.sleep(3)
    res = sender.msg(bot, "10:18")
    time.sleep(3)
    res = sender.history(bot, 2)
    comprobar(res[0], 'OK')
    res = sender.msg(bot, "Sí")
    time.sleep(3)
    res = sender.msg(bot, "18:29")
    time.sleep(5)
    res = sender.history(bot, 2)

    comprobar(res[1], 'Muy bien. Los datos han sido')
Exemplo n.º 2
0
def main():

    init(autoreset=True)
    bot = os.getenv('BOT', 'tensio2bot')
    # bot = "TensioBot"
    # bot = "tensio2bot"
    sender = Sender("127.0.0.1", 9009)

    res = sender.msg(bot, "/cancel")
    time.sleep(2)
    res = sender.msg(bot, "/tension")
    time.sleep(2)
    res = sender.msg(bot, "Sí, ahora")
    time.sleep(2)
    res = sender.msg(bot, "120")
    time.sleep(2)
    res = sender.msg(bot, "90")
    time.sleep(2)
    res = sender.history(bot, 2)
    time.sleep(2)

    comprobar(res[1], 'Para confirmar que la tensión es estable')

    time.sleep(2)
    res = sender.msg(bot, "OK, ya he vuelto a tomarme la tensión")
    time.sleep(2)

    res = sender.msg(bot, "126")
    time.sleep(2)

    res = sender.msg(bot, "90")

    time.sleep(8)
    res = sender.history(bot, 2)

    #    print("Response: {response}".format(response=res))

    comprobar(res[0], 'La diferencia entre tomas es de más de')
    comprobar(res[1], 'Para confirmar que la tensión es estable')

    time.sleep(2)
    res = sender.msg(bot, "OK, ya he vuelto a tomarme la tensión")
    time.sleep(2)

    res = sender.msg(bot, "126")
    time.sleep(2)

    res = sender.msg(bot, "90")

    time.sleep(8)
    res = sender.history(bot, 2)

    comprobar(res[0], 'Muy bien')
    comprobar(res[1], 'Cuando quieras')
Exemplo n.º 3
0
def main():

    init(autoreset=True)
    bot = os.getenv('BOT', 'tensio2bot')

    # bot = "TensioBot"
    # bot = "tensio2bot"
    sender = Sender("127.0.0.1", 9009)

    res = sender.msg(bot, "/cancel")
    time.sleep(2)
    res = sender.msg(bot, "/tension")
    time.sleep(2)
    res = sender.msg(bot, "Sí, ahora")
    time.sleep(2)
    res = sender.msg(bot, "120")
    time.sleep(2)
    res = sender.msg(bot, "90")
    time.sleep(2)
    res = sender.history(bot, 2)
    time.sleep(2)

    comprobar(res[1], 'Para confirmar que la tensión es estable')

    time.sleep(2)
    res = sender.msg(bot, "OK, ya he vuelto a tomarme la tensión")
    time.sleep(2)

    res = sender.msg(bot, "122")
    time.sleep(2)

    res = sender.msg(bot, "92")

    time.sleep(8)
    res = sender.history(bot, 2)

    #    print("Response: {response}".format(response=res))

    comprobar(res[0],
              'Muy bien. Los datos han sido introducidos correctamente')
    comprobar(res[1], 'Cuando quieras, puedes volver a pedirme ayuda')
def bittrexTelegram():
    initialise()
    balance = BittrexBot.getBalance('btc')
    market = input(colorama.Fore.CYAN + '[1] What Group: ' +
                   colorama.Style.RESET_ALL)
    risk = input(colorama.Fore.CYAN + '[1] Risk Multiplier: ' +
                 colorama.Style.RESET_ALL)
    amount = input(colorama.Fore.CYAN + '[2] % of bitcoin to spend: ' +
                   colorama.Style.RESET_ALL)
    profit = input(colorama.Fore.CYAN + '[3] Profit %: ' +
                   colorama.Style.RESET_ALL)
    amount, profit = percentageFix(amount, profit)
    amount = balance * float(amount)
    for i in result:
        if 'title' in i and market in i['title']:
            ExID = i['id']

    log = logger.getLogger('test')
    log.critical('waiting')
    while True:
        print(ExID)
        s = Sender('127.0.0.1', 4458)
        messages = s.history(ExID)
        length = len(messages)
        if 'text' in messages[
                length -
                1] and 'https://bittrex.com/Market/Index?MarketName=BTC' in messages[
                    length - 1]['text']:
            coin = messages[length - 1]['text'].split('BTC-')
            st = re.sub('\\W+', '', coin[1])
            BittrexBot.Trade(st, profit, amount, risk)
        if 'text' in messages[length - 1]:
            wordList = messages[length - 1]['text'].split()
            newWordList = []
            for word in wordList:
                scrub = re.sub('\\W+', '', word)
                newWordList.append(scrub)

            for pair in bittrexpairs:
                p = pair.split('-')
                for word in newWordList:
                    if word == p[1]:
                        BittrexBot.Trade(word, profit, amount, risk)

        time.sleep(1)
Exemplo n.º 5
0
            with open("%s_offset" % args.name, "r") as f:
                offset = int(f.read()) or 0
        except FileNotFoundError:
            offset = 0
    else:
        offset = 0

    empties = 0
    print("Offset:", offset)

    while True:

        new_messages = 0

        try:
            res = sender.history(channel_id, args.step, offset)
            if "error" in res:
                print(res)
                break
        except (IllegalResponseException, NoResponse):
            print("Empty response")

            empties += 1
            if empties > 5:
                sys.exit(1)

            time.sleep(2)
            continue

        for msg in res:
            try:
Exemplo n.º 6
0
                offset = int(f.read()) or 0
        except FileNotFoundError:
            offset = 0
    else:
        offset = 0


    empties = 0
    print("Offset:", offset)

    while True:

        new_messages = 0

        try:
            res = sender.history(channel_id, args.step, offset)
            if "error" in res:
                print(res)
                break
        except (IllegalResponseException, NoResponse):
            print("Empty response")

            empties += 1
            if empties > 5:
                sys.exit(1)

            time.sleep(2)
            continue

        for msg in res:
            try:
Exemplo n.º 7
0
class PyTelegram(object):
    def __init__(self):
        tgcli_port = 4458
        self.setlog()
        if not self.start(tgcli_port):
            sys.exit(1)

        self.receiver = Receiver(host="localhost", port=tgcli_port)
        self.sender = Sender(host="localhost", port=tgcli_port)

    def setlog(self):
        basepath = os.path.dirname(os.path.realpath(__file__))
        logdir = os.path.join(basepath, "./log")
        if not os.path.exists(logdir):
            os.mkdir(logdir)
        self.logname = os.path.join(basepath,
                                    "./log/%s.log" % time.strftime("%Y%m%d%H"))
        LOG_FORMAT = '[%(asctime)s] : %(levelname)s %(filename)s - %(funcName)s(%(lineno)d) - %(message)s'
        logging.basicConfig(
            format=LOG_FORMAT,
            level=0,
            handlers=[logging.FileHandler(self.logname, 'a', 'utf-8')])

    def need_proxy(self):
        try:
            s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
            s.connect(('8.8.8.8', 1))
            selfip = s.getsockname()[0]
        except Exception as e:
            logging.error(e)
            return False

        if selfip.startswith("192.168.") or selfip.startswith("10.")\
                or selfip.startswith("172.1") or selfip.startswith("10.64."):
            logging.debug("need proxy")
            return True
        else:
            logging.debug("no need proxy")
            return False

    def start(self, tgcli_port):
        try:
            s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
            check = s.connect_ex(('127.0.0.1', tgcli_port))
            s.close()
        except Exception as e:
            logging.error(e)
            check = 1

        if check == 0:
            return True

        if self.need_proxy():
            cmd = """nohup proxychains telegram-cli --json --tcp-port %d >> %s 2>&1 &"""\
                % (tgcli_port, self.logname)
        else:
            cmd = """nohup telegram-cli --json --tcp-port %d >> %s 2>&1 &"""\
                % (tgcli_port, self.logname)

        logging.debug(cmd)
        ret = subprocess.Popen(cmd,
                               shell=True,
                               stderr=subprocess.PIPE,
                               stdout=subprocess.PIPE)
        ret.wait()
        logging.debug("ret wait")
        reterr = ret.stderr.read()
        logging.debug("ret err")
        retout = ret.stdout.read()
        logging.debug("ret out")
        if reterr:
            logging.error(reterr.decode("utf8"))
            return False
        logging.info(retout)
        return True

    def parse_recive(self, msg_dict):
        logging.debug(msg_dict)

    def receive_loop(self):
        @coroutine
        def receive_coroutine_loop():
            while 1:
                msg = (yield)
                self.parse_recive(msg)

        self.receiver.start()
        self.receiver.message(receive_coroutine_loop())

    def get_channel_list(self, limit=0, offset=0):
        if limit == 0 and offset == 0:
            channels = self.sender.channel_list()
        else:
            channels = self.sender.channel_list(limit, offset)
        return channels

    def get_dialog_list(self, limit=0, offset=0):
        if limit == 0 and offset == 0:
            dialogs = self.sender.dialog_list()
        else:
            dialogs = self.sender.dialog_list(limit, offset)
        return dialogs

    def channel_get_members(self, name):
        members = self.sender.channel_get_members(name)
        return members

    def chat_get_members(self, name):
        chat_info_dict = self.sender.chat_info(name)
        meminfo_list = chat_info_dict["members"]
        return meminfo_list

    def get_history(self, peer, limit=0, offset=0):
        if limit == 0:
            ret = self.sender.history(peer,
                                      retry_connect=10,
                                      result_timeout=100)
        elif offset == 0:
            ret = self.sender.history(peer, limit, retry_connect=10)
        else:
            ret = self.sender.history(peer, limit, offset, retry_connect=10)
        #logging.debug(ret)
        ret.reverse()
        history_dict = collections.OrderedDict()
        for chat_info in ret:
            try:
                if chat_info["event"] != "message":
                    continue
                chatid = chat_info["id"]
                history_dict[chatid] = chat_info
                logging.debug(chat_info)
            except Exception as e:
                logging.error(e)
        return history_dict

    def create_group(self, groupname, userlist):
        try:
            ret = self.sender.create_group_chat(groupname, userlist[0])
            logging.debug(ret)
        except Exception as e:
            logging.error(e)
            return False

        if len(userlist) == 1:
            return True

        for username in userlist[1:]:
            try:
                ret = self.sender.chat_add_user(groupname, username, 0)
                logging.debug(ret)
            except Exception as e:
                logging.error(e)
        return True