yeref 0.24.36__tar.gz → 0.24.37__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: yeref
3
- Version: 0.24.36
3
+ Version: 0.24.37
4
4
  Summary: desc-f
5
5
  Author: john smith
6
6
  Dynamic: author
@@ -2,7 +2,7 @@ from setuptools import setup
2
2
 
3
3
  setup(
4
4
  name='yeref',
5
- version='0.24.36',
5
+ version='0.24.37',
6
6
  description='desc-f',
7
7
  author='john smith',
8
8
  packages=['yeref'],
@@ -15374,6 +15374,113 @@ async def check_sub_pay(chat_id, lz, BOT_TOKEN_E18B, BASE_D):
15374
15374
  return is_paid, till_paid
15375
15375
 
15376
15376
 
15377
+ async def pay_handler(bot, message, ideas_en, ideas_ru, PROJECT_USERNAME, EXTRA_D, BASE_P):
15378
+ try:
15379
+ successful_payment_data = {k: v for k, v in message.successful_payment.model_dump().items() if v is not None}
15380
+ print(f"successful_payment {successful_payment_data}")
15381
+ chat_id = message.from_user.id
15382
+ lz = await lz_code_pg(chat_id, message.from_user.language_code, BASE_P)
15383
+ total_amount = message.successful_payment.total_amount
15384
+ payload = message.successful_payment.invoice_payload
15385
+ # tx_id = message.successful_payment.telegram_payment_charge_id
15386
+
15387
+ DT_START = datetime.now(timezone.utc).strftime('%d-%m-%Y_%H-%M-%S')
15388
+ DT_END = ""
15389
+ sub_exp_date = message.successful_payment.subscription_expiration_date
15390
+ if sub_exp_date: DT_END = datetime.fromtimestamp(sub_exp_date, tz=timezone.utc).strftime('%d-%m-%Y_%H-%M-%S')
15391
+ print(f"{DT_END=}, {payload=}")
15392
+ # if payload == '-': payload = 'material'
15393
+
15394
+ if payload == 'all':
15395
+ payload_txt = l_sub_to_private_channel[lz]
15396
+ elif payload == '6':
15397
+ payload_txt = l_payment_6_months[lz]
15398
+ elif payload == '1':
15399
+ payload_txt = l_payment_1_months[lz]
15400
+ elif payload == 'donate':
15401
+ payload_txt = l_donate[lz]
15402
+ elif payload == 'material':
15403
+ payload_txt = l_material[lz]
15404
+ else:
15405
+ payload_txt = str(payload) if payload else ''
15406
+
15407
+ await bot.send_message(chat_id=chat_id, text='🎉')
15408
+ USER_PAYMENTS = []
15409
+ sql = "SELECT USER_TID, USER_LSTS FROM \"USER\" WHERE USER_TID=$1"
15410
+ data_usr = await db_select_pg(sql, (chat_id,), BASE_P)
15411
+ if not len(data_usr):
15412
+ dt_ = datetime.now(timezone.utc).strftime('%d-%m-%Y_%H-%M-%S')
15413
+ sql = "INSERT INTO \"USER\" (USER_TID, USER_DT) VALUES ($1, $2) ON CONFLICT DO NOTHING"
15414
+ await db_change_pg(sql, (chat_id, dt_,), BASE_P)
15415
+ USER_LSTS = json.loads(USER_LSTS_)
15416
+ else:
15417
+ USER_TID, USER_LSTS = data_usr[0]
15418
+ USER_LSTS = json.loads(USER_LSTS or USER_LSTS_)
15419
+ USER_PAYMENTS = USER_LSTS.get("USER_PAYMENTS", [])
15420
+
15421
+ print(f"{payload=}")
15422
+ if payload in ['all', '6', '1']:
15423
+ USER_PAYMENTS.append({
15424
+ 'TYPE': 'SUB',
15425
+ 'LOAD': 'month' if payload == '1' else payload,
15426
+ 'DT_START': DT_START,
15427
+ 'DT_END': DT_END,
15428
+ 'AMOUNT': total_amount
15429
+ })
15430
+ elif payload == 'donate':
15431
+ USER_PAYMENTS.append({
15432
+ 'TYPE': 'DON',
15433
+ 'LOAD': payload,
15434
+ 'DT_START': DT_START,
15435
+ 'DT_END': DT_END,
15436
+ 'AMOUNT': total_amount
15437
+ })
15438
+ elif payload in ['material']:
15439
+ USER_PAYMENTS.append({
15440
+ 'TYPE': 'MAT',
15441
+ 'LOAD': payload,
15442
+ 'DT_START': DT_START,
15443
+ 'DT_END': DT_END,
15444
+ 'AMOUNT': total_amount
15445
+ })
15446
+
15447
+ ideas = ideas_ru if lz == 'ru' else ideas_en
15448
+ lst = [[i + 1, idea] for i, idea in enumerate(ideas)]
15449
+
15450
+ f_name = f"{payload_txt}-{lz}.csv"
15451
+ output = io.StringIO()
15452
+ csv_writer = csv.writer(output)
15453
+ csv_writer.writerow(["#", "i"])
15454
+ csv_writer.writerows(lst)
15455
+
15456
+ async with aiofiles.open(f_name, 'w', newline='') as f:
15457
+ await f.write(output.getvalue())
15458
+ thumb = types.FSInputFile(os.path.join(EXTRA_D, 'parse.jpg'))
15459
+ await bot.send_document(chat_id=chat_id, document=types.FSInputFile(f_name), thumbnail=thumb)
15460
+ if os.path.exists(f_name): os.remove(f_name)
15461
+ else:
15462
+ USER_PAYMENTS.append({
15463
+ 'TYPE': 'EXT',
15464
+ 'LOAD': payload,
15465
+ 'DT_START': DT_START,
15466
+ 'DT_END': DT_END,
15467
+ 'AMOUNT': total_amount
15468
+ })
15469
+
15470
+ USER_LSTS["USER_PAYMENTS"] = USER_PAYMENTS
15471
+ USER_LSTS = json.dumps(USER_LSTS, ensure_ascii=False)
15472
+
15473
+ sql = f"UPDATE \"USER\" SET USER_PAY=$1 WHERE USER_TID=$2"
15474
+ await db_change_pg(sql, (USER_LSTS, chat_id,), BASE_P)
15475
+
15476
+ text = f"{l_payment_success[lz]} ★{total_amount}, {payload_txt}\n\n♥️ @{PROJECT_USERNAME} {l_payment_hashtag[lz]}"
15477
+ await bot.send_message(chat_id=chat_id, text=text)
15478
+ except TelegramRetryAfter as e:
15479
+ logger.info(log_ % f'TelegramRetryAfter {e.retry_after}')
15480
+ await asyncio.sleep(e.retry_after)
15481
+ except Exception as e:
15482
+ logger.info(log_ % str(e))
15483
+ await asyncio.sleep(round(random.uniform(0, 1), 2))
15377
15484
  # endregion
15378
15485
 
15379
15486
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: yeref
3
- Version: 0.24.36
3
+ Version: 0.24.37
4
4
  Summary: desc-f
5
5
  Author: john smith
6
6
  Dynamic: author
File without changes
File without changes
File without changes
File without changes
File without changes