Exemplo n.º 1
0
def default(mensagem, comando, func):
    log_msg(mensagem)
    try:
        if mensagem.chat.id != -1001003662865 and mensagem.from_user.id != 110806641:
            block(mensagem)
        else:
            bot.reply_to(mensagem, consulta_grupo(comando))
    except Exception as erro:
        log_erros(func, erro, mensagem)
def default(mensagem, comando, func):
    log_msg(mensagem)
    try:
        if mensagem.chat.id != -1001003662865 and  mensagem.from_user.id != 110806641:
            block(mensagem)
        else:
            bot.reply_to(mensagem, consulta_grupo(comando))
    except Exception as erro:
        log_erros(func, erro, mensagem)
def comando_sugest(message):
    log_msg(mensagem)
    if mensagem.chat.id != -1001003662865 and  mensagem.from_user.id != 110806641:
            block(mensagem)
    else:
        if len(message.text) > 10:
            arq_sugest = open('sugest.txt', 'a')
            arq_sugest.write('\n\n'+'-'*30+'\n'+message.text.replace('/sugestão ', ''))
            arq_sugest.close()
            bot.reply_to(message,'*Sugestão recebida, obrigado*', parse_mode='Markdown')
        else:
            bot.reply_to(message,'Uso: `/sugestão <sugestão>`', parse_mode='Markdown')
def comando_sugest(mensagem):
    log_msg(mensagem)
    if mensagem.chat.type != 'private':
        bot.reply_to(mensagem, '*Para usar esta função, me chame no PV*', parse_mode='Markdown')
    else:
        try:
            
            if len(mensagem.text) <= 6:
                bot.reply_to(mensagem, 'Código muito curto')
            else:
                bot.reply_to(mensagem, '```\n'+mensagem.text.replace('/code ', '')+'\n```', parse_mode="Markdown")
        except Exception as erro:
                log_erros('comando code', erro, mensagem)
                print('\n------------------------------------\nErro na função code, consulte o arquivo logs_de_erros,', datetime.today())
def id_(mensagem):
    log_msg(mensagem)
    try:
        bot.reply_to(mensagem,'''
INFO
ID: {id_user}
Seu Nome: {nome}
Username: @{username}
---------------------
Nome do Chat: {nome_grupo}
ID do Grupo:     {id_grupo}'''.format(nome = mensagem.from_user.first_name + mensagem.from_user.last_name if mensagem.from_user.last_name else mensagem.from_user.first_name,
                                    username = mensagem.from_user.username, id_user = mensagem.from_user.id, nome_grupo = mensagem.chat.title,
                                    id_grupo = mensagem.chat.id))
    except Exception as erro:
            log_erros('comando ID', erro, mensagem)
            print('\n------------------------------------\nErro na função ID, consulte o arquivo logs_de_erros,', datetime.today())
Exemplo n.º 6
0
def comando_sugest(message):
    log_msg(mensagem)
    if mensagem.chat.id != -1001003662865 and mensagem.from_user.id != 110806641:
        block(mensagem)
    else:
        if len(message.text) > 10:
            arq_sugest = open('sugest.txt', 'a')
            arq_sugest.write('\n\n' + '-' * 30 + '\n' +
                             message.text.replace('/sugestão ', ''))
            arq_sugest.close()
            bot.reply_to(message,
                         '*Sugestão recebida, obrigado*',
                         parse_mode='Markdown')
        else:
            bot.reply_to(message,
                         'Uso: `/sugestão <sugestão>`',
                         parse_mode='Markdown')
def id_(mensagem):
    log_msg(mensagem)
    if limite_comando('sorteio', datetime.today().minute) == True:
        try:
            bot.reply_to(mensagem,'''
            To Aqui ! o/
            Checando equipamentos...
            Sistema     [OK]
            Bateria     [OK]
            Munição     [OK]
            Explosivos  [OK]
            --------------------------
            Verificação completa !
            Data:       {hour}
            '''.format(hour = str(datetime.today())[:19]))
        except Exception as erro:
            log_erros('comando STATUS', erro, mensagem)
            print('\n------------------------------------\nErro na função status, consulte o arquivo logs_de_erros,', datetime.today())
Exemplo n.º 8
0
def id_(mensagem):
    log_msg(mensagem)
    if limite_comando('sorteio', datetime.today().minute) == True:
        try:
            bot.reply_to(
                mensagem, '''
            To Aqui ! o/
            Checando equipamentos...
            Sistema     [OK]
            Bateria     [OK]
            Munição     [OK]
            Explosivos  [OK]
            --------------------------
            Verificação completa !
            Data:       {hour}
            '''.format(hour=str(datetime.today())[:19]))
        except Exception as erro:
            log_erros('comando STATUS', erro, mensagem)
            print(
                '\n------------------------------------\nErro na função status, consulte o arquivo logs_de_erros,',
                datetime.today())
Exemplo n.º 9
0
def comando_sugest(mensagem):
    log_msg(mensagem)
    if mensagem.chat.type != 'private':
        bot.reply_to(mensagem,
                     '*Para usar esta função, me chame no PV*',
                     parse_mode='Markdown')
    else:
        try:

            if len(mensagem.text) <= 6:
                bot.reply_to(mensagem, 'Código muito curto')
            else:
                bot.reply_to(mensagem,
                             '```\n' + mensagem.text.replace('/code ', '') +
                             '\n```',
                             parse_mode="Markdown")
        except Exception as erro:
            log_erros('comando code', erro, mensagem)
            print(
                '\n------------------------------------\nErro na função code, consulte o arquivo logs_de_erros,',
                datetime.today())
def comando_buscar_modulo(mensagem):
    log_msg(mensagem)
    if limite_comando('', datetime.today().minute) == True:
        if mensagem.chat.type != 'private':
            bot.reply_to(mensagem, '*Para usar esta função, me chame no PV*', parse_mode='Markdown')
        else:
            try:
                texto = mensagem.text.split(' ')[1]
                if len(texto) > 2:
                    resposta = buscar_modulo(texto)
                    if resposta:
                        resposta = ''.join(x for x in resposta)
                        resposta = telebot.util.split_string(resposta, 3000)
                        for x in resposta: bot.reply_to(mensagem,x)
                    else:
                        bot.reply_to(mensagem,'_Nenhum módulo encontrado_', parse_mode='Markdown')
                else:
                    bot.reply_to(mensagem,'_Termo de busca muito curto, tente novamente_', parse_mode='Markdown')
            except IndexError:
                bot.reply_to(mensagem,'Uso: `/buscar_modulo <termo de busca>`\n_Ex.: /buscar_[_]()_modulo telegram_', parse_mode='Markdown')
            except Exception as erro:
                log_erros('comando buscar_modulo', erro, mensagem)
                print('\n------------------------------------\nErro na função buscar_modulo, consulte o arquivo logs_de_erros,', datetime.today())
Exemplo n.º 11
0
def comando_buscar_modulo(mensagem):
    log_msg(mensagem)
    if limite_comando('', datetime.today().minute) == True:
        if mensagem.chat.type != 'private':
            bot.reply_to(mensagem,
                         '*Para usar esta função, me chame no PV*',
                         parse_mode='Markdown')
        else:
            try:
                texto = mensagem.text.split(' ')[1]
                if len(texto) > 2:
                    resposta = buscar_modulo(texto)
                    if resposta:
                        resposta = ''.join(x for x in resposta)
                        resposta = telebot.util.split_string(resposta, 3000)
                        for x in resposta:
                            bot.reply_to(mensagem, x)
                    else:
                        bot.reply_to(mensagem,
                                     '_Nenhum módulo encontrado_',
                                     parse_mode='Markdown')
                else:
                    bot.reply_to(
                        mensagem,
                        '_Termo de busca muito curto, tente novamente_',
                        parse_mode='Markdown')
            except IndexError:
                bot.reply_to(
                    mensagem,
                    'Uso: `/buscar_modulo <termo de busca>`\n_Ex.: /buscar_[_]()_modulo telegram_',
                    parse_mode='Markdown')
            except Exception as erro:
                log_erros('comando buscar_modulo', erro, mensagem)
                print(
                    '\n------------------------------------\nErro na função buscar_modulo, consulte o arquivo logs_de_erros,',
                    datetime.today())
Exemplo n.º 12
0
def id_(mensagem):
    log_msg(mensagem)
    try:
        bot.reply_to(
            mensagem, '''
INFO
ID: {id_user}
Seu Nome: {nome}
Username: @{username}
---------------------
Nome do Chat: {nome_grupo}
ID do Grupo:     {id_grupo}'''.format(
                nome=mensagem.from_user.first_name +
                mensagem.from_user.last_name if mensagem.from_user.last_name
                else mensagem.from_user.first_name,
                username=mensagem.from_user.username,
                id_user=mensagem.from_user.id,
                nome_grupo=mensagem.chat.title,
                id_grupo=mensagem.chat.id))
    except Exception as erro:
        log_erros('comando ID', erro, mensagem)
        print(
            '\n------------------------------------\nErro na função ID, consulte o arquivo logs_de_erros,',
            datetime.today())
Exemplo n.º 13
0
def main(event, context):
    """
    This Lambda's entry point

    :param event: the event received from the s3 bucket
    :param context: the runtime environment information
    """
    print(event)

    # rewritten
    # logger, log = get_logger()

    bucket_name = event['Records'][0]['s3']['bucket']['name']
    object_key = event['Records'][0]['s3']['object']['key']

    # open new transaction / get its id
    id_txn = new_txn(connection, object_key, datetime.utcnow())
    if id_txn < 0:
        # skip when the same file being processed
        return

    obj = s3.Object(bucket_name, object_key)

    # If the uploaded file is a schema, add it to the Postgres
    if object_key[-3:] == 'yml':

        log_msg('Requesting file from S3', connection, object_key, processing)

        try:
            body = obj.get()['Body']
            contents = body.read()
        except ClientError as ex:
            txn_msg = f'Error with S3: {ex.response["Error"]["Code"]}'
            log_msg(txn_msg, connection, object_key, failed)
            log_txn(connection, id_txn, failed, msg=txn_msg)
            return

        log_msg('Read contents from S3', connection, object_key, processing)

        try:
            schema = yaml.load(contents.decode('utf-8'))

            schemas_xml.add_schema(schema, connection)
            log_msg('Add schema to database', connection, object_key,
                    processing)
        except:
            txn_msg = 'Error with processing schema'
            log_msg(txn_msg, connection, object_key, failed)
            log_txn(connection, id_txn, failed, txn_msg)
            return

        # schema added successfully
        txn_msg = 'Finished processing schema'
        log_msg(txn_msg, connection, object_key, succeeded)
        log_txn(connection, id_txn, succeeded, msg=txn_msg)

    # If the uploaded file is the actual data
    elif object_key[-3:] == 'xml' or object_key[-2:] == 'gz':
        log_msg('Read data from S3', connection, object_key, processing)

        # Read the contents of the file
        try:
            body = obj.get()['Body']
            contents = body.read()
        except ClientError as ex:
            txn_msg = f'Error with reading data: {ex.response["Error"]["Code"]}'
            log_msg(txn_msg, connection, object_key, failed)
            log_txn(connection, id_txn, failed, msg=txn_msg)
            return

        # for gzip-compressed files, decompress first
        if object_key[-2:] == 'gz':
            log_msg('Data in GZ format', connection, object_key, processing)
            try:
                contents = gzip.decompress(contents)
            except:
                txn_msg = "Error with decompressing .gz data"
                log_msg(txn_msg, connection, object_key, failed)
                log_txn(connection, id_txn, failed, msg=txn_msg)
                return

            log_msg('Decompressed data', connection, object_key, processing)

        log_msg("Start extracting data ...", connection, object_key,
                processing)
        try:
            xml_data = ET.fromstring(contents.decode('utf-8'))
        except ET.ParseError as ex:
            txn_msg = f'Error with parsing XML data: {ex.response["Error"]["Code"]}'
            log_msg(txn_msg, connection, object_key, failed)
            log_txn(connection, id_txn, failed, msg=txn_msg)
            return

        data = extract_traffic_data(xml_data, NS_PREFIX)

        # print("DEBUG:\n",data[0])

        size = len(data)
        log_msg(f'Writing {size} locations to DynamoDB', connection,
                object_key, processing)

        # Break the batch into reasonably sized chunks
        chunk_size = 200
        for i in range(0, size, chunk_size):
            # processing only subset when debugging
            if FLAG_DEBUG and i > 2 * chunk_size:
                break

            j = min(size, i + chunk_size)

            with traffic_table.batch_writer(overwrite_by_pkeys=[
                    'measurementSiteReference', 'measurementTimeDefault'
            ]) as batch:
                for item in data[i:j]:
                    batch.put_item(Item=item)

            log_msg(f'Wrote items {i}-{j}', connection, object_key, processing)

        # break build by skipping this
        if BREAK_BUILD:
            return

        txn_msg = 'Finished processing traffic data'
        log_msg(txn_msg, connection, object_key, succeeded)
        log_txn(connection, id_txn, succeeded, num_locations=size, msg=txn_msg)