GMashtalyar

Web Apps

.

from aiogram import Bot, Dispatcher, executor, types
from aiogram.types.web_app_info import WebAppInfo
import json

bot = Bot('some id')
dp = Dispatcher(bot)

url1 = 'http://gmashtalyar.ru'
url11 = 'https://fintechdocs.ru'
url2 = 'https://simpleboard.ru'
url4 = 'https://gmashtalyar.github.io/web_telegram/index.html'
url41 = 'https://gmashtalyar.github.io/web_telegram/index3.html'
@dp.message_handler(commands=['start'])
async def start(message: types.Message):
    """
    ReplyKeyboardMarkup to get data from the app;
    InlineKeyboardMarkup to send data to the app
    """

    # markup = types.InlineKeyboardMarkup()
    markup = types.ReplyKeyboardMarkup()
    markup.add(types.KeyboardButton('Открыть приложение', web_app=WebAppInfo(url=url4)))
    # markup.add(types.InlineKeyboardButton('Открыть приложение', web_app=WebAppInfo(url=url4)))
    await message.answer('Добрый день', reply_markup=markup)


@dp.message_handler(content_types=['web_app_data'])
async def web_app(message: types.Message):
    res = json.loads(message.web_app_data.data)
    await message.answer(f'Name: {res["name"]}. Email: {res["email"]}. Phone: {res["phone"]}.')

executor.start_polling(dp)

Simple fx bot

.

from aiogram import Bot, Dispatcher, executor, types
from aiogram.types.web_app_info import WebAppInfo
from aiogram.types import InputFile
import json
import pandas as pd
from pandas import read_excel
from datetime import datetime
import ccxt, yfinance
import pandas_ta as ta
import pandas as pd


def get_data():
    exchange = ccxt.binance()
    bars = exchange.fetch_ohlcv('ETH/USDT', timeframe='5m', limit=500)
    df = pd.DataFrame(bars, columns=['time', 'open', 'high', 'low', 'close', 'volume'])
    adx = df.ta.adx()
    macd = df.ta.macd()
    rsi = df.ta.rsi()
    df = pd.concat([df, adx, macd, rsi], axis=1)
    last_row = df.iloc[-1]

    if last_row['ADX_14'] >= 25:
        if last_row['DMP_14'] > last_row['DMN_14']:
            message = f"STRONG UPTREND: The ADX is {last_row['ADX_14']:.2f}"
            print(message)
        if last_row['DMN_14'] > last_row['DMP_14']:
            message = f"STRONG DOWNTREND: The ADX is {last_row['ADX_14']:.2f}"
            print(message)
    if last_row['ADX_14'] < 25:
        message = f" NO TREND: The ADX is {last_row['ADX_14']:.2f}"
        print(message)

    return message


bot = Bot('some id')
dp = Dispatcher(bot)


@dp.message_handler(commands=['start'])
async def start(message: types.Message):
    await message.answer('Инструкция:\n\n'
                         'Нажмите команду /fx \n\n')


@dp.message_handler(commands=['fx'])
async def download(message: types.Message):
    data = get_data()
    await message.answer(data)

executor.start_polling(dp)

Reestr

.

from aiogram import Bot, Dispatcher, executor, types
from aiogram.types.web_app_info import WebAppInfo
from aiogram.types import InputFile
import json
from reestr import format_zakupki, format_zakupki_2
import pandas as pd
from openpyxl import load_workbook
from pandas import read_excel
from datetime import datetime
from perekup import perekup
from factoring import add_factoring
from novostal_reestr import get_reestr
from oper_expenses import oper_exp

bot = Bot('some id')
dp = Dispatcher(bot)


@dp.message_handler(commands=['start'])
async def start(message: types.Message):
    await message.answer('Инструкция реестра платежей:\n\n'
                         '1) Загрузите в чат-бот бюджет закупок на месяц\n\n'
                         '2) Загрузите в чат-бот платежи сегодняшнего дня\n\n'
                         '3) Нажмите команду /reestr , чтобы создать реестр платежей закупок\n\n'
                         '4) Сообщите финанситам о готовности реестра закупок\n\n'
                         '5) Загрузите "Заявки на расходование ДС" \n\n')


@dp.message_handler(commands=['reestr'])
async def download(message: types.Message):
    segodna = datetime.today().strftime('%Y-%m-%d')
    add_factoring()
    get_reestr()
    # document = open(f'input3/Бюджет закупок {segodna}.xlsx', 'rb')
    document = open(f'input3/Реестр Ариэль Металл {segodna}.xlsx', 'rb')
    await message.answer('Бюджет закупок готов.\n\n'
                         'Пожалуйста, сообщите финанситам, что он готов.\n\n'
                         'Ниже вы можете посмотреть на реестр платежей:')
    await bot.send_document(message.chat.id, document=document)

@dp.message_handler(content_types=types.ContentType.DOCUMENT)
async def scan_message(message: types.Message):
    segodna = datetime.today().strftime('%Y-%m-%d')
    await message.document.download(destination_file=f'input/Закупки_{segodna}.xlsx')
    try:
        format_zakupki_2()
        await message.answer('Бюджет закупок получен')
    except:
        try:
            perekup()
            await message.answer('Бюджет перекупа получен')
        except:
            try:
                await message.answer('Бот думает, дайте ему две минутки')
                oper_exp()
                document = open(f'input3/Реестр Ариэль Металл {segodna}.xlsx', 'rb')
                await message.answer('Ниже вы найдете реестр платежей:')
                await bot.send_document(message.chat.id, document=document)
            except:
                await message.answer('Вышла какая-то ошибка. Обратитесь к Геннадию.\n\n'
                                     'Или попробуйте запустить процесс снова, с самого начала :) ')


executor.start_polling(dp)