xync-client 0.0.25.dev77__tar.gz → 0.0.25.dev78__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.
Files changed (90) hide show
  1. {xync_client-0.0.25.dev77/xync_client.egg-info → xync_client-0.0.25.dev78}/PKG-INFO +1 -1
  2. {xync_client-0.0.25.dev77 → xync_client-0.0.25.dev78}/xync_client/Abc/Agent.py +1 -1
  3. {xync_client-0.0.25.dev77 → xync_client-0.0.25.dev78}/xync_client/Abc/Ex.py +1 -1
  4. {xync_client-0.0.25.dev77 → xync_client-0.0.25.dev78}/xync_client/TgWallet/ex.py +1 -1
  5. {xync_client-0.0.25.dev77 → xync_client-0.0.25.dev78/xync_client.egg-info}/PKG-INFO +1 -1
  6. {xync_client-0.0.25.dev77 → xync_client-0.0.25.dev78}/xync_client.egg-info/SOURCES.txt +0 -1
  7. xync_client-0.0.25.dev77/xync_client/pyro.py +0 -87
  8. {xync_client-0.0.25.dev77 → xync_client-0.0.25.dev78}/.env.sample +0 -0
  9. {xync_client-0.0.25.dev77 → xync_client-0.0.25.dev78}/.gitignore +0 -0
  10. {xync_client-0.0.25.dev77 → xync_client-0.0.25.dev78}/.pre-commit-config.yaml +0 -0
  11. {xync_client-0.0.25.dev77 → xync_client-0.0.25.dev78}/README.md +0 -0
  12. {xync_client-0.0.25.dev77 → xync_client-0.0.25.dev78}/makefile +0 -0
  13. {xync_client-0.0.25.dev77 → xync_client-0.0.25.dev78}/pyproject.toml +0 -0
  14. {xync_client-0.0.25.dev77 → xync_client-0.0.25.dev78}/setup.cfg +0 -0
  15. {xync_client-0.0.25.dev77 → xync_client-0.0.25.dev78}/tests/TestAgent.py +0 -0
  16. {xync_client-0.0.25.dev77 → xync_client-0.0.25.dev78}/tests/TestAsset.py +0 -0
  17. {xync_client-0.0.25.dev77 → xync_client-0.0.25.dev78}/tests/TestEx.py +0 -0
  18. {xync_client-0.0.25.dev77 → xync_client-0.0.25.dev78}/tests/TestOrder.py +0 -0
  19. {xync_client-0.0.25.dev77 → xync_client-0.0.25.dev78}/tests/_todo_refact/Binance/test_binance.py +0 -0
  20. {xync_client-0.0.25.dev77 → xync_client-0.0.25.dev78}/tests/_todo_refact/Bybit/test_bybit.py +0 -0
  21. {xync_client-0.0.25.dev77 → xync_client-0.0.25.dev78}/tests/_todo_refact/Bybit/test_bybit_p2p.py +0 -0
  22. {xync_client-0.0.25.dev77 → xync_client-0.0.25.dev78}/tests/_todo_refact/Gate/test_gate.py +0 -0
  23. {xync_client-0.0.25.dev77 → xync_client-0.0.25.dev78}/tests/_todo_refact/Htx/test_htx_p2p.py +0 -0
  24. {xync_client-0.0.25.dev77 → xync_client-0.0.25.dev78}/tests/_todo_refact/Wallet/test_agent.py +0 -0
  25. {xync_client-0.0.25.dev77 → xync_client-0.0.25.dev78}/tests/_todo_refact/Wallet/test_ex.py +0 -0
  26. {xync_client-0.0.25.dev77 → xync_client-0.0.25.dev78}/tests/_todo_refact/__init__.py +0 -0
  27. {xync_client-0.0.25.dev77 → xync_client-0.0.25.dev78}/tests/_todo_refact/_test_ex.py +0 -0
  28. {xync_client-0.0.25.dev77 → xync_client-0.0.25.dev78}/tests/res.js +0 -0
  29. {xync_client-0.0.25.dev77 → xync_client-0.0.25.dev78}/xync_client/Abc/Asset.py +0 -0
  30. {xync_client-0.0.25.dev77 → xync_client-0.0.25.dev78}/xync_client/Abc/AuthTrait.py +0 -0
  31. {xync_client-0.0.25.dev77 → xync_client-0.0.25.dev78}/xync_client/Abc/Base.py +0 -0
  32. {xync_client-0.0.25.dev77 → xync_client-0.0.25.dev78}/xync_client/Abc/BaseTest.py +0 -0
  33. {xync_client-0.0.25.dev77 → xync_client-0.0.25.dev78}/xync_client/Abc/InAgent.py +0 -0
  34. {xync_client-0.0.25.dev77 → xync_client-0.0.25.dev78}/xync_client/Abc/Order.py +0 -0
  35. {xync_client-0.0.25.dev77 → xync_client-0.0.25.dev78}/xync_client/Abc/types.py +0 -0
  36. {xync_client-0.0.25.dev77 → xync_client-0.0.25.dev78}/xync_client/Binance/__init__.py +0 -0
  37. {xync_client-0.0.25.dev77 → xync_client-0.0.25.dev78}/xync_client/Binance/binance_async.py +0 -0
  38. {xync_client-0.0.25.dev77 → xync_client-0.0.25.dev78}/xync_client/Binance/earn_api.py +0 -0
  39. {xync_client-0.0.25.dev77 → xync_client-0.0.25.dev78}/xync_client/Binance/ex.py +0 -0
  40. {xync_client-0.0.25.dev77 → xync_client-0.0.25.dev78}/xync_client/Binance/exceptions.py +0 -0
  41. {xync_client-0.0.25.dev77 → xync_client-0.0.25.dev78}/xync_client/Binance/sapi.py +0 -0
  42. {xync_client-0.0.25.dev77 → xync_client-0.0.25.dev78}/xync_client/Binance/web_c2c.py +0 -0
  43. {xync_client-0.0.25.dev77 → xync_client-0.0.25.dev78}/xync_client/BingX/__init__.py +0 -0
  44. {xync_client-0.0.25.dev77 → xync_client-0.0.25.dev78}/xync_client/BingX/agent.py +0 -0
  45. {xync_client-0.0.25.dev77 → xync_client-0.0.25.dev78}/xync_client/BingX/base.py +0 -0
  46. {xync_client-0.0.25.dev77 → xync_client-0.0.25.dev78}/xync_client/BingX/etype/ad.py +0 -0
  47. {xync_client-0.0.25.dev77 → xync_client-0.0.25.dev78}/xync_client/BingX/etype/pm.py +0 -0
  48. {xync_client-0.0.25.dev77 → xync_client-0.0.25.dev78}/xync_client/BingX/ex.py +0 -0
  49. {xync_client-0.0.25.dev77 → xync_client-0.0.25.dev78}/xync_client/BingX/req.mjs +0 -0
  50. {xync_client-0.0.25.dev77 → xync_client-0.0.25.dev78}/xync_client/BingX/sign.js +0 -0
  51. {xync_client-0.0.25.dev77 → xync_client-0.0.25.dev78}/xync_client/BitGet/__init__.py +0 -0
  52. {xync_client-0.0.25.dev77 → xync_client-0.0.25.dev78}/xync_client/BitGet/agent.py +0 -0
  53. {xync_client-0.0.25.dev77 → xync_client-0.0.25.dev78}/xync_client/BitGet/etype/ad.py +0 -0
  54. {xync_client-0.0.25.dev77 → xync_client-0.0.25.dev78}/xync_client/BitGet/ex.py +0 -0
  55. {xync_client-0.0.25.dev77 → xync_client-0.0.25.dev78}/xync_client/BitGet/req.mjs +0 -0
  56. {xync_client-0.0.25.dev77 → xync_client-0.0.25.dev78}/xync_client/Bybit/agent.py +0 -0
  57. {xync_client-0.0.25.dev77 → xync_client-0.0.25.dev78}/xync_client/Bybit/ex.py +0 -0
  58. {xync_client-0.0.25.dev77 → xync_client-0.0.25.dev78}/xync_client/Bybit/web_earn.py +0 -0
  59. {xync_client-0.0.25.dev77 → xync_client-0.0.25.dev78}/xync_client/Bybit/web_p2p.py +0 -0
  60. {xync_client-0.0.25.dev77 → xync_client-0.0.25.dev78}/xync_client/Gate/etype/ad.py +0 -0
  61. {xync_client-0.0.25.dev77 → xync_client-0.0.25.dev78}/xync_client/Gate/ex.py +0 -0
  62. {xync_client-0.0.25.dev77 → xync_client-0.0.25.dev78}/xync_client/Gate/premarket.py +0 -0
  63. {xync_client-0.0.25.dev77 → xync_client-0.0.25.dev78}/xync_client/Htx/agent.py +0 -0
  64. {xync_client-0.0.25.dev77 → xync_client-0.0.25.dev78}/xync_client/Htx/earn.py +0 -0
  65. {xync_client-0.0.25.dev77 → xync_client-0.0.25.dev78}/xync_client/Htx/etype/__init__.py +0 -0
  66. {xync_client-0.0.25.dev77 → xync_client-0.0.25.dev78}/xync_client/Htx/etype/ad.py +0 -0
  67. {xync_client-0.0.25.dev77 → xync_client-0.0.25.dev78}/xync_client/Htx/etype/cred.py +0 -0
  68. {xync_client-0.0.25.dev77 → xync_client-0.0.25.dev78}/xync_client/Htx/etype/pm.py +0 -0
  69. {xync_client-0.0.25.dev77 → xync_client-0.0.25.dev78}/xync_client/Htx/ex.py +0 -0
  70. {xync_client-0.0.25.dev77 → xync_client-0.0.25.dev78}/xync_client/KuCoin/etype/ad.py +0 -0
  71. {xync_client-0.0.25.dev77 → xync_client-0.0.25.dev78}/xync_client/KuCoin/etype/pm.py +0 -0
  72. {xync_client-0.0.25.dev77 → xync_client-0.0.25.dev78}/xync_client/KuCoin/ex.py +0 -0
  73. {xync_client-0.0.25.dev77 → xync_client-0.0.25.dev78}/xync_client/KuCoin/web.py +0 -0
  74. {xync_client-0.0.25.dev77 → xync_client-0.0.25.dev78}/xync_client/Okx/etype/ad.py +0 -0
  75. {xync_client-0.0.25.dev77 → xync_client-0.0.25.dev78}/xync_client/Okx/etype/pm.py +0 -0
  76. {xync_client-0.0.25.dev77 → xync_client-0.0.25.dev78}/xync_client/Okx/ex.py +0 -0
  77. {xync_client-0.0.25.dev77 → xync_client-0.0.25.dev78}/xync_client/TgWallet/agent.py +0 -0
  78. {xync_client-0.0.25.dev77 → xync_client-0.0.25.dev78}/xync_client/TgWallet/asset.py +0 -0
  79. {xync_client-0.0.25.dev77 → xync_client-0.0.25.dev78}/xync_client/TgWallet/auth.py +0 -0
  80. {xync_client-0.0.25.dev77 → xync_client-0.0.25.dev78}/xync_client/TgWallet/inAgent.py +0 -0
  81. {xync_client-0.0.25.dev77 → xync_client-0.0.25.dev78}/xync_client/TgWallet/order.py +0 -0
  82. {xync_client-0.0.25.dev77 → xync_client-0.0.25.dev78}/xync_client/TgWallet/pyd.py +0 -0
  83. {xync_client-0.0.25.dev77 → xync_client-0.0.25.dev78}/xync_client/TgWallet/pyro.py +0 -0
  84. {xync_client-0.0.25.dev77 → xync_client-0.0.25.dev78}/xync_client/TgWallet/web.py +0 -0
  85. {xync_client-0.0.25.dev77 → xync_client-0.0.25.dev78}/xync_client/__init__.py +0 -0
  86. {xync_client-0.0.25.dev77 → xync_client-0.0.25.dev78}/xync_client/loader.py +0 -0
  87. {xync_client-0.0.25.dev77 → xync_client-0.0.25.dev78}/xync_client/pm_unifier.py +0 -0
  88. {xync_client-0.0.25.dev77 → xync_client-0.0.25.dev78}/xync_client.egg-info/dependency_links.txt +0 -0
  89. {xync_client-0.0.25.dev77 → xync_client-0.0.25.dev78}/xync_client.egg-info/requires.txt +0 -0
  90. {xync_client-0.0.25.dev77 → xync_client-0.0.25.dev78}/xync_client.egg-info/top_level.txt +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: xync-client
3
- Version: 0.0.25.dev77
3
+ Version: 0.0.25.dev78
4
4
  Author-email: Mike Artemiev <mixartemev@gmail.com>
5
5
  Project-URL: Homepage, https://gitlab.com/XyncNet/client
6
6
  Project-URL: Repository, https://gitlab.com/XyncNet/client
@@ -4,7 +4,7 @@ from pydantic import BaseModel
4
4
  from tortoise.exceptions import IntegrityError
5
5
  from x_model import HTTPException, FailReason
6
6
  from xync_schema.models import OrderStatus, Coin, Cur, Ad, AdStatus, Fiat, Agent, Pmex, Pmcur, Cred, PmexBank
7
- from xync_schema.pydantic import FiatNew, FiatUpd, BaseAd, FiatPydIn, AdSalePydIn, AdBuyPydIn, CredPydIn, BaseOrder
7
+ from xync_schema.types import FiatNew, FiatUpd, BaseAd, FiatPydIn, AdSalePydIn, AdBuyPydIn, CredPydIn, BaseOrder
8
8
 
9
9
  from xync_client.Abc.Ex import BaseExClient
10
10
  from xync_client.Abc.Base import BaseClient
@@ -67,7 +67,7 @@ class BaseExClient(BaseClient):
67
67
  # Curs
68
68
  cur_pyds: dict[str, CurEx] = await self.curs()
69
69
  curs: dict[int | str, models.Cur] = {
70
- exid: (await models.Cur.update_or_create({"rate": cur_pyd.rate}, ticker=cur_pyd.ticker))[0]
70
+ exid: (await models.Cur.update_or_create({"rate": cur_pyd.rate or 0}, ticker=cur_pyd.ticker))[0]
71
71
  for exid, cur_pyd in cur_pyds.items()
72
72
  }
73
73
  curexs = [
@@ -93,7 +93,7 @@ class ExClient(BaseExClient, AuthClient):
93
93
  # 42: Чужая объява по id
94
94
  async def ad(self, ad_id: int) -> _TakerOne:
95
95
  ad = await self._post("/p2p/public-api/v2/offer/get", {"offerId": ad_id})
96
- if not (ad := ad.get("data")):
96
+ if not ad or not (ad := ad.get("data")):
97
97
  return ad
98
98
  model = OneAdTakerMakerSale if ad["type"] == "SALE" else OneAdTakerBuy
99
99
  return model(**ad)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: xync-client
3
- Version: 0.0.25.dev77
3
+ Version: 0.0.25.dev78
4
4
  Author-email: Mike Artemiev <mixartemev@gmail.com>
5
5
  Project-URL: Homepage, https://gitlab.com/XyncNet/client
6
6
  Project-URL: Repository, https://gitlab.com/XyncNet/client
@@ -21,7 +21,6 @@ tests/_todo_refact/Wallet/test_ex.py
21
21
  xync_client/__init__.py
22
22
  xync_client/loader.py
23
23
  xync_client/pm_unifier.py
24
- xync_client/pyro.py
25
24
  xync_client.egg-info/PKG-INFO
26
25
  xync_client.egg-info/SOURCES.txt
27
26
  xync_client.egg-info/dependency_links.txt
@@ -1,87 +0,0 @@
1
- import io
2
- from asyncio import run
3
- from os.path import dirname
4
-
5
- import requests
6
- from PIL import Image
7
- from PIL.ImageEnhance import Brightness
8
- from pyrogram import Client
9
- from pyrogram.errors import UserNotParticipant
10
- from pyrogram.types import ChatPrivileges, Chat
11
- from x_model import init_db
12
- from xync_schema.enums import UserStatus
13
-
14
- from xync_client.loader import TG_API_ID, TG_API_HASH
15
- from xync_schema import models
16
- from xync_schema.models import Agent
17
-
18
- max_privs = ChatPrivileges(
19
- can_manage_chat=True, # default
20
- can_delete_messages=True,
21
- can_delete_stories=True, # Channels only
22
- can_manage_video_chats=True, # Groups and supergroups only
23
- can_restrict_members=True,
24
- can_promote_members=True,
25
- can_change_info=True,
26
- can_post_messages=True, # Channels only
27
- can_post_stories=True, # Channels only
28
- can_edit_messages=True, # Channels only
29
- can_edit_stories=True, # Channels only
30
- can_invite_users=True,
31
- can_pin_messages=True, # Groups and supergroups only
32
- can_manage_topics=True, # Supergroups only
33
- is_anonymous=True
34
- )
35
-
36
-
37
- class PyroClient:
38
- def __init__(self, agent: Agent):
39
- self.app: Client = Client(str(agent.actor.user_id), TG_API_ID, TG_API_HASH, session_string=agent.auth["sess"])
40
-
41
- async def create_orders_forum(self, uid: int) -> tuple[int, bool]:
42
- async with self.app as app:
43
- app: Client
44
- forum: Chat = await app.create_supergroup(f"xync{uid}", "Xync Orders")
45
- if not (_ := await app.toggle_forum_topics(chat_id=forum.id, enabled=True)):
46
- r = await app.delete_channel(forum.id)
47
- r = await forum.leave()
48
- raise Exception(f"Chat {forum.id} for {app.me.username} not converted to forum")
49
- if added := await forum.add_members(["XyncNetBot"]): # , "xync_bot"
50
- await forum.promote_member("XyncNetBot", max_privs)
51
- added = await forum.add_members([uid])
52
- else:
53
- pass
54
- try:
55
- await forum.get_member(uid)
56
- except UserNotParticipant:
57
- added = False
58
- # await forum.leave()
59
- return forum.id, added
60
-
61
-
62
- async def main():
63
- _ = await init_db(PG_DSN, models, True)
64
- agent = await Agent.filter(
65
- actor__ex__name="TgWallet", auth__isnull=False, user__status__gt=UserStatus.SLEEP
66
- ).first() # .order_by("-user__created_forums__count")
67
- pcl = PyroClient(agent)
68
- res = await pcl.create_orders_forum("cryrub")
69
- print(res)
70
-
71
-
72
- if __name__ == "__main__":
73
- from dotenv import load_dotenv
74
- from os import getenv as env
75
-
76
- load_dotenv()
77
- PG_DSN = f"postgres://{env('POSTGRES_USER')}:{env('POSTGRES_PASSWORD')}@{env('POSTGRES_HOST', 'xyncdbs')}:{env('POSTGRES_PORT', 5432)}/{env('POSTGRES_DB', env('POSTGRES_USER'))}"
78
- run(main())
79
-
80
-
81
- def ava(url: str) -> bytes:
82
- byts = requests.get(url).content
83
- jpg = Image.open(io.BytesIO(byts)).convert('RGBA')
84
- jpg = Brightness(jpg).enhance(0.5)
85
- png = Image.open(dirname(__file__) + '/xico.png')
86
- jpg.paste(png, (0, 0, 320, 320), mask=png)
87
- return jpg.tobytes()