示例#1
0
def main(message):
    language = tech_info.return_language(message.chat.id)
    bot.send_message(
        message.chat.id,
        localization.return_translation('zip_searching', language) + '\n\n' +
        localization.return_translation('status_checking', language),
        reply_markup=types.ReplyKeyboardRemove())
示例#2
0
def choose_kind(call):
    language = tech_info.return_language(call.message.chat.id)
    api_func.set_kind_of_pickup(call.message.chat.id, call.data)
    print(api_func.return_param(call.message.chat.id, 'kind_of_pickup'))
    tech_info.set_position(call.message.chat.id, 'enter_info')
    bot.send_message(call.message.chat.id,
                     text=localization.return_translation(
                         'about_cargo', language))
    bot.send_message(call.message.chat.id,
                     text=localization.return_translation(
                         'pickup_location', language))
示例#3
0
def send_info(message):
    language = tech_info.return_language(message.chat.id)
    add_data = api_func.add_data(telegram_id=message.chat.id)
    api_func.set_task_id(message.chat.id, add_data['task_id'])
    add_product(message.chat.id)
    api_func.clear_all(message.chat.id)
    keyboard = types.ReplyKeyboardMarkup(resize_keyboard=True)
    button = types.KeyboardButton(
        localization.return_translation('success_button', language))
    keyboard.add(button)
    bot.send_message(
        message.chat.id,
        text=localization.return_translation('success', language) +
        add_data['task_id'],
        reply_markup=keyboard)
示例#4
0
def show_stuff_list(message):
    tech_info.set_offset(message.chat.id, 1)
    offset = int(tech_info.return_offset(message.chat.id))
    language = tech_info.return_language(message.chat.id)
    tech_info.set_position(message.chat.id, 'stuff_list')
    get_stuff_list = api_func.get_all(telegram_id=message.chat.id,
                                      offset=offset)
    keyboard = types.InlineKeyboardMarkup()
    button_reset = types.InlineKeyboardButton(
        text=localization.return_translation('chosen_zip_reset', language),
        callback_data='reset')
    button_confirm = types.InlineKeyboardButton(
        text=localization.return_translation('chosen_zip_approve', language),
        callback_data='confirm')
    keyboard.add(button_reset, button_confirm)
    bot.send_message(message.chat.id,
                     text=get_stuff_list['stuff_link'],
                     reply_markup=keyboard)
示例#5
0
def lang_select(call):
    keyboard = types.ReplyKeyboardMarkup(row_width=1, resize_keyboard=True)
    if call.data == 'ru':
        tech_info.set_language(call.message.chat.id, call.data)
        language = tech_info.return_language(call.message.chat.id)
        button = types.KeyboardButton(
            text=localization.return_translation('rules_button', language))
        keyboard.add(button)
        bot.send_message(text=localization.return_translation(
            'rules', language),
                         chat_id=call.message.chat.id,
                         reply_markup=keyboard)
    else:
        tech_info.set_language(call.message.chat.id, call.data)
        language = tech_info.return_language(call.message.chat.id)
        button = types.KeyboardButton(
            text=localization.return_translation('rules_button', language))
        keyboard.add(button)
        bot.send_message(text=localization.return_translation(
            'rules', language),
                         chat_id=call.message.chat.id,
                         reply_markup=keyboard)
示例#6
0
def courier_approved(call):
    language = tech_info.return_language(call.message.chat.id)
    tech_info.set_position(call.message.chat.id, 'choose_category')
    keyboard = types.InlineKeyboardMarkup()
    get_category = api_func.get_category(call.message.chat.id)
    for each in get_category['stuff_list']:
        button = types.InlineKeyboardButton(text='{}'.format(
            each['list_name']),
                                            callback_data=each['list_id'])
        keyboard.add(button)
    bot.send_message(call.message.chat.id,
                     text=localization.return_translation(
                         'choose_category', language),
                     reply_markup=keyboard)
示例#7
0
def courier_reset(call):
    language = tech_info.return_language(call.message.chat.id)
    tech_info.set_position(call.message.chat.id, 'zip_listing')
    get_distance = dict()
    for each in ConnectedApi.objects.all():
        get_distance = api_func.get_distance(call.message.chat.id, each)
    if type(get_distance) == dict and get_distance['address']:
        couriers_list = sorted(get_distance['address'],
                               key=api_func.sort_by_dist)
        keyboard = types.InlineKeyboardMarkup()
        for each in couriers_list:
            button = types.InlineKeyboardButton(text='{} {} {}'.format(
                each['zip'], each['distance'].replace("'", ''), each['name']),
                                                callback_data=each['zip'])
            keyboard.add(button)
        bot.send_message(call.message.chat.id,
                         text=localization.return_translation(
                             'zip_list_choose', language),
                         reply_markup=keyboard)
示例#8
0
def call_digit_answers(call):
    position = tech_info.return_position(call.message.chat.id)
    language = tech_info.return_language(call.message.chat.id)
    if position == 'zip_listing':
        api_func.set_zipcode(telegram_id=call.message.chat.id,
                             zipcode=call.data)
        keyboard = types.ReplyKeyboardMarkup(row_width=2, resize_keyboard=True)
        button = types.KeyboardButton(
            text=localization.return_translation('zip_list_button', language))
        keyboard.add(button)
        bot.send_message(
            call.message.chat.id,
            text=localization.return_translation('zip_list', language).format(
                api_func.return_param(telegram_id=call.message.chat.id,
                                      param='zipcode')),
            reply_markup=keyboard)
    elif position == 'choose_category':
        api_func.set_product_category(telegram_id=call.message.chat.id,
                                      product_category=call.data)
        keyboard = types.InlineKeyboardMarkup()
        get_items = api_func.get_items(call.message.chat.id)
        tech_info.set_position(call.message.chat.id, 'choose_item')
        for each in get_items['items_list']:
            button = types.InlineKeyboardButton(text='{}'.format(
                each['item_name']),
                                                callback_data=each['item_id'])
            keyboard.add(button)
        bot.send_message(call.message.chat.id,
                         text=localization.return_translation(
                             'choose_item', language),
                         reply_markup=keyboard)
    elif position == 'choose_item':
        api_func.set_product_item(call.message.chat.id, call.data)
        tech_info.set_position(call.message.chat.id, 'kind_of_pickup')
        keyboard = types.InlineKeyboardMarkup()
        button_shop = types.InlineKeyboardButton(
            text=localization.return_translation('shop_button', language),
            callback_data='shop')
        button_company = types.InlineKeyboardButton(
            text=localization.return_translation('company_button', language),
            callback_data='company')
        keyboard.add(button_shop, button_company)
        bot.send_message(call.message.chat.id,
                         text=localization.return_translation(
                             'shop_or_company', language),
                         reply_markup=keyboard)
示例#9
0
def status_check(message):
    language = tech_info.return_language(message.chat.id)
    tech_info.set_position(message.chat.id, 'status')
    bot.send_message(message.chat.id,
                     localization.return_translation('enter_id', language))
示例#10
0
def enter_zip(message):
    tech_info.set_position(message.chat.id, 'zip')
    language = tech_info.return_language(message.chat.id)
    bot.send_message(
        message.chat.id,
        localization.return_translation('enter_zipcode', language))
示例#11
0
def form(message):
    language = tech_info.return_language(message.chat.id)
    position = tech_info.return_position(message.chat.id)
    if position == 'status_checker':
        api_func.set_payout(telegram_id=message.chat.id, payout=message.text)
        payment_info = api_func.payment(message.chat.id)
        for each in payment_info['package_list']:
            if each['pack_id'] == api_func.return_param(
                    message.chat.id, 'pack_id'):
                bot.send_message(message.chat.id,
                                 text=localization.return_translation(
                                     'paid_status',
                                     language).format(each['summ'],
                                                      each['date']))
    elif position == 'enter_info':
        tech_info.set_position(message.chat.id, 'pickup_location')
        api_func.set_pickup_location(telegram_id=message.chat.id,
                                     pickup_location=message.text)
        if api_func.return_param(message.chat.id, 'kind_of_pickup') == 'shop':
            bot.send_message(message.chat.id,
                             text=localization.return_translation(
                                 'store_name', language))
        else:
            bot.send_message(message.chat.id,
                             text=localization.return_translation(
                                 'company_name', language))
    elif position == 'pickup_location':
        if api_func.return_param(message.chat.id, 'kind_of_pickup') == 'shop':
            tech_info.set_position(message.chat.id, 'store_name')
            api_func.set_store_name(telegram_id=message.chat.id,
                                    store_name=message.text)
            bot.send_message(message.chat.id,
                             text=localization.return_translation(
                                 'store_phone', language))
        else:
            tech_info.set_position(message.chat.id, 'store_phone')
            api_func.set_store_name(telegram_id=message.chat.id,
                                    store_name=message.text)
            bot.send_message(message.chat.id,
                             text=localization.return_translation(
                                 'order_number', language))
    elif position == 'order_number':
        tech_info.set_position(message.chat.id, 'pickup_person')
        api_func.set_pickup_person(telegram_id=message.chat.id,
                                   pickup_person=message.text)
        keyboard = types.ReplyKeyboardMarkup(resize_keyboard=True)
        button = types.KeyboardButton(
            localization.return_translation('skip', language))
        keyboard.add(button)
        bot.send_message(message.chat.id,
                         text=localization.return_translation(
                             'additional_info', language),
                         reply_markup=keyboard)
    elif position == 'pickup_person':
        tech_info.set_position(message.chat.id, 'additional_info')
        if message.text in localization.return_all_translations('skip'):
            api_func.set_more_info(telegram_id=message.chat.id, more_info='')
            bot.send_message(message.chat.id,
                             text=localization.return_translation(
                                 'price', language),
                             reply_markup=types.ReplyKeyboardRemove())
        else:
            api_func.set_more_info(telegram_id=message.chat.id,
                                   more_info=message.text)
            bot.send_message(message.chat.id,
                             text=localization.return_translation(
                                 'price', language),
                             reply_markup=types.ReplyKeyboardRemove())
示例#12
0
def answer_on_digits(message):
    position = tech_info.return_position(message.chat.id)
    language = tech_info.return_language(message.chat.id)
    if position == 'zip':
        tech_info.set_position(message.chat.id, 'zip_listing')
        api_func.set_user_id(telegram_id=message.chat.id,
                             user_id='D87hd487ft4')
        api_func.set_zipcode(telegram_id=message.chat.id, zipcode=message.text)
        get_distance = dict()
        for each in ConnectedApi.objects.all():
            get_distance = api_func.get_distance(message.chat.id, each)
        if type(get_distance) == dict and get_distance['address']:
            couriers_list = sorted(get_distance['address'],
                                   key=api_func.sort_by_dist)
            keyboard = types.InlineKeyboardMarkup()
            for each in couriers_list:
                button = types.InlineKeyboardButton(text='{} {} {}'.format(
                    each['zip'], each['distance'].replace("'", ''),
                    each['name']),
                                                    callback_data=each['zip'])
                keyboard.add(button)
            bot.send_message(message.chat.id,
                             text=localization.return_translation(
                                 'zip_list_choose', language),
                             reply_markup=keyboard)
        elif not get_distance['address']:
            bot.send_message(message.chat.id,
                             text=localization.return_translation(
                                 'zip_not_found', language))
        elif type(get_distance) != dict:
            bot.send_message(message.chat.id,
                             text=localization.return_translation(
                                 'server_error', language))
    if position == 'status':
        tech_info.set_position(message.chat.id, 'status_checker')
        api_func.set_user_id(telegram_id=message.chat.id,
                             user_id='D87hd487ft4')
        get_status = api_func.get_status()
        if type(get_status) == list and get_status:
            for each in get_status:
                status_updater(each)
                pack_id = each['pack_id']
                if pack_id == message.text:
                    bot.send_message(message.chat.id,
                                     text=localization.return_translation(
                                         'status', language) + each['pack_id'])
                    if each['status'] == 'Confirm':
                        bot.send_message(message.chat.id,
                                         text=localization.return_translation(
                                             'status_confirm', language))
                        api_func.set_pack_id(telegram_id=message.chat.id,
                                             pack_id=each['pack_id'])
                        keyboard = types.ReplyKeyboardMarkup(
                            resize_keyboard=True)
                        button = types.KeyboardButton(
                            text=localization.return_translation(
                                'enter_requisites_button', language))
                        keyboard.add(button)
                        bot.send_message(message.chat.id,
                                         text=localization.return_translation(
                                             'enter_requisites', language))
                    elif each['status'] == 'Process':
                        bot.send_message(message.chat.id,
                                         text=localization.return_translation(
                                             'status_process', language))
                    elif each['status'] == 'Rejected':
                        bot.send_message(message.chat.id,
                                         text=localization.return_translation(
                                             'status_cancel', language))
                    elif each['status'] == 'Paid':
                        bot.send_message(message.chat.id,
                                         text=localization.return_translation(
                                             'paid_status', language).format(
                                                 each['summ'], each['date']))
        else:
            bot.send_message(message.chat.id, text='Нет такого заказа')
    elif position == 'store_name':
        tech_info.set_position(message.chat.id, 'store_phone')
        api_func.set_store_phone(telegram_id=message.chat.id,
                                 store_phone=message.text)
        bot.send_message(message.chat.id,
                         text=localization.return_translation(
                             'order_number', language),
                         reply_markup=types.ReplyKeyboardRemove())
    elif position == 'store_phone':
        tech_info.set_position(message.chat.id, 'order_number')
        api_func.set_order_number(telegram_id=message.chat.id,
                                  order_number=message.text)
        bot.send_message(message.chat.id,
                         text=localization.return_translation(
                             'pickup_person', language))
    elif position == 'additional_info':
        tech_info.set_position(message.chat.id, 'price')
        api_func.set_price(telegram_id=message.chat.id, price=message.text)
        keyboard = types.ReplyKeyboardMarkup(resize_keyboard=True)
        button = types.KeyboardButton(
            text=localization.return_translation('send_button', language))
        keyboard.add(button)
        bot.send_message(message.chat.id,
                         text=localization.return_translation(
                             'all_is_done', language),
                         reply_markup=keyboard)
示例#13
0
def print_localization(name, lang):
    print(localization.return_translation(name=name, language=lang))
示例#14
0
from bot_app import localization
from vedis import Vedis
from bot_app import tech_info
from logistic_bot import settings

# a = api_func.Api()
#
# a.set_user_id(telegram_id='test', user_id='D87hd487ft4')
# a.set_zipcode('test', 33815)
# print(a.return_param('test', 'user_id'))
# print(a.return_param('test', 'zipcode'))
#
# request = requests.get('https://strongbox.cc/?a=fnc.api.zip.getdistance&zip={zipcode}&tuser={user_id}'.format(
#                   zipcode=a.return_param('test', 'zipcode'),
#                   user_id=a.return_param('test', 'user_id')))
#
# print(json.loads(request.text))

tech_info.set_language('test', 'ru')
language = tech_info.return_language('test')
print(localization.return_translation('rules', language))


def print_localization(name, lang):
    print(localization.return_translation(name=name, language=lang))


print_localization('rules_button', 'ru')

print(localization.return_all_translations('rules'))
print(settings.BASE_DIR + r'\bot_app\localization.vdb')