aioimaplib
для чтения и aiosmtplib
для отправки callback_data=data['address']
, в функции send_to_support_call
используете callback_data['address'] вместо data['address']user_id = int(callback_data.get("user_id"))
если вы не используете user_id из своей БД, а это user_id телеграма то зачем передавать в callback_data, если по умолчанию есть в callback query, и ниже вы его используете user_id=call.from_user.id
import json
import re
import requests
req = requests.get('https://steamcommunity.com/market/listings/730/Recoil%20Case')
search = re.search('var line1=(.+);', req.text)
data_str = search.group(1)
data = json.loads(data_str)
for x in data:
date = x[0]
usd_price = x[1]
num_of_sales = x[2]
print(date, float(usd_price), num_of_sales)
list_price = [float(x[1]) for x in data]
# Магическое число "2" для форматирования float до двух знаков после запятой
# Форматирование в f строке :.{2}f
print(f"Общее кол-во сделок: {sum([int(x[2]) for x in data]):.{2}f}")
print(f"Общая сумма сделок: {sum(list_price):.{2}f}")
if request.method == 'POST':
body = request.body.decode("utf-8")
orders = body.split('\n')
order_with_big_bags = {}
for parcel in orders:
bb_id = connect(table='parcels',
field='document_id',
equally=parcel,
item='big_bag_id')
try:
if isinstance(order_with_big_bags[bb_id], list):
order_with_big_bags[bb_id].append(parcel)
except KeyError:
order_with_big_bags[bb_id] = [parcel]
return Response(order_with_big_bags)
if request.method == 'POST':
body = request.body.decode("utf-8")
orders = body.split('\n')
order_with_big_bags = {}
for parcel in orders:
bb_id = connect(table='parcels',
field='document_id',
equally=parcel,
item='big_bag_id')
if bb_id not in order_with_big_bags:
order_with_big_bags[bb_id] = [parcel]
else:
order_with_big_bags[bb_id].append(parcel)
return Response(order_with_big_bags)
def get_bb_id(parcel):
return connect(table='parcels',
field='document_id',
equally=parcel,
item='big_bag_id')
order_with_big_bags = {get_bb_id(parcel): [parcel] for parcel in orders}
print(order_with_big_bags)
enumerate
и i
добавлены т.к. я прохожусь по листам.orders = ['28-1661-0907', '28-1661-0896', '28-1661-0885', '28-1661-0874', '28-1661-0863', '28-1661-0852',
'28-1661-0841', '28-1661-0830', '28-1661-0808', '28-1661-0797', '28-1661-0786', '28-1661-0775',
'28-1661-0764', '28-1661-0753']
bb_ids = [4321, 4320, 4319, 4318, 4317, 4316, 4315, 4314, 4313, 4312, 4311, 4310, 4309, 4308]
order_with_big_bags = {}
for i, parcel in enumerate(orders):
bb_id = bb_ids[i]
try:
if isinstance(order_with_big_bags[bb_id], list):
order_with_big_bags[bb_id].append(parcel)
except KeyError:
order_with_big_bags[bb_id] = [parcel]
print(order_with_big_bags)
order_with_big_bags
, который объявлен в теле цикла, естественно вам вернет последнее значение. Объявите перед циклом '<a href="tg://user?id= + msg.chat.id + ">msg.chat.first_name</a>'
msg.from.id
, msg.from.first_name
aiogram > bot > base.py
в функции get_new_session
в ClientSession добавить trust_env=True
aiogram > bot > api.py
в функции make_request
в запросе установить ssl = False
Можно попробовать, но ничего не обещаю
Скорее всего если на 3.9 все работает, а на 3.10 нет, то обязательно прочитайте ссылку выше, в 3.10 отказываются от использования TLS версии ниже 1.2.
Заметил, что проект у вас называется
rosreestr
, у Росреестра сертификат от DigiCert, который в марте отзывал у санкционных организаций свои TLS сертификаты, проблема также может быть в этом. Отзывался ли у Росреестра не знаюТакже Certificate Transparency не может найти сертификат, отпечаток которого они передают.
Пост на хабре: Фантастические админы и где они обитают
Там обсуждается другой сертификат, не текущий, который передается их сайтом сейчас.
По фингерпринту текущий их сертификат найти невозможно.
Скорее всего получится отключив проверку ssl.
В aiohttp так:
Какой в других не знаю