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.
- {xync_client-0.0.25.dev77/xync_client.egg-info → xync_client-0.0.25.dev78}/PKG-INFO +1 -1
- {xync_client-0.0.25.dev77 → xync_client-0.0.25.dev78}/xync_client/Abc/Agent.py +1 -1
- {xync_client-0.0.25.dev77 → xync_client-0.0.25.dev78}/xync_client/Abc/Ex.py +1 -1
- {xync_client-0.0.25.dev77 → xync_client-0.0.25.dev78}/xync_client/TgWallet/ex.py +1 -1
- {xync_client-0.0.25.dev77 → xync_client-0.0.25.dev78/xync_client.egg-info}/PKG-INFO +1 -1
- {xync_client-0.0.25.dev77 → xync_client-0.0.25.dev78}/xync_client.egg-info/SOURCES.txt +0 -1
- xync_client-0.0.25.dev77/xync_client/pyro.py +0 -87
- {xync_client-0.0.25.dev77 → xync_client-0.0.25.dev78}/.env.sample +0 -0
- {xync_client-0.0.25.dev77 → xync_client-0.0.25.dev78}/.gitignore +0 -0
- {xync_client-0.0.25.dev77 → xync_client-0.0.25.dev78}/.pre-commit-config.yaml +0 -0
- {xync_client-0.0.25.dev77 → xync_client-0.0.25.dev78}/README.md +0 -0
- {xync_client-0.0.25.dev77 → xync_client-0.0.25.dev78}/makefile +0 -0
- {xync_client-0.0.25.dev77 → xync_client-0.0.25.dev78}/pyproject.toml +0 -0
- {xync_client-0.0.25.dev77 → xync_client-0.0.25.dev78}/setup.cfg +0 -0
- {xync_client-0.0.25.dev77 → xync_client-0.0.25.dev78}/tests/TestAgent.py +0 -0
- {xync_client-0.0.25.dev77 → xync_client-0.0.25.dev78}/tests/TestAsset.py +0 -0
- {xync_client-0.0.25.dev77 → xync_client-0.0.25.dev78}/tests/TestEx.py +0 -0
- {xync_client-0.0.25.dev77 → xync_client-0.0.25.dev78}/tests/TestOrder.py +0 -0
- {xync_client-0.0.25.dev77 → xync_client-0.0.25.dev78}/tests/_todo_refact/Binance/test_binance.py +0 -0
- {xync_client-0.0.25.dev77 → xync_client-0.0.25.dev78}/tests/_todo_refact/Bybit/test_bybit.py +0 -0
- {xync_client-0.0.25.dev77 → xync_client-0.0.25.dev78}/tests/_todo_refact/Bybit/test_bybit_p2p.py +0 -0
- {xync_client-0.0.25.dev77 → xync_client-0.0.25.dev78}/tests/_todo_refact/Gate/test_gate.py +0 -0
- {xync_client-0.0.25.dev77 → xync_client-0.0.25.dev78}/tests/_todo_refact/Htx/test_htx_p2p.py +0 -0
- {xync_client-0.0.25.dev77 → xync_client-0.0.25.dev78}/tests/_todo_refact/Wallet/test_agent.py +0 -0
- {xync_client-0.0.25.dev77 → xync_client-0.0.25.dev78}/tests/_todo_refact/Wallet/test_ex.py +0 -0
- {xync_client-0.0.25.dev77 → xync_client-0.0.25.dev78}/tests/_todo_refact/__init__.py +0 -0
- {xync_client-0.0.25.dev77 → xync_client-0.0.25.dev78}/tests/_todo_refact/_test_ex.py +0 -0
- {xync_client-0.0.25.dev77 → xync_client-0.0.25.dev78}/tests/res.js +0 -0
- {xync_client-0.0.25.dev77 → xync_client-0.0.25.dev78}/xync_client/Abc/Asset.py +0 -0
- {xync_client-0.0.25.dev77 → xync_client-0.0.25.dev78}/xync_client/Abc/AuthTrait.py +0 -0
- {xync_client-0.0.25.dev77 → xync_client-0.0.25.dev78}/xync_client/Abc/Base.py +0 -0
- {xync_client-0.0.25.dev77 → xync_client-0.0.25.dev78}/xync_client/Abc/BaseTest.py +0 -0
- {xync_client-0.0.25.dev77 → xync_client-0.0.25.dev78}/xync_client/Abc/InAgent.py +0 -0
- {xync_client-0.0.25.dev77 → xync_client-0.0.25.dev78}/xync_client/Abc/Order.py +0 -0
- {xync_client-0.0.25.dev77 → xync_client-0.0.25.dev78}/xync_client/Abc/types.py +0 -0
- {xync_client-0.0.25.dev77 → xync_client-0.0.25.dev78}/xync_client/Binance/__init__.py +0 -0
- {xync_client-0.0.25.dev77 → xync_client-0.0.25.dev78}/xync_client/Binance/binance_async.py +0 -0
- {xync_client-0.0.25.dev77 → xync_client-0.0.25.dev78}/xync_client/Binance/earn_api.py +0 -0
- {xync_client-0.0.25.dev77 → xync_client-0.0.25.dev78}/xync_client/Binance/ex.py +0 -0
- {xync_client-0.0.25.dev77 → xync_client-0.0.25.dev78}/xync_client/Binance/exceptions.py +0 -0
- {xync_client-0.0.25.dev77 → xync_client-0.0.25.dev78}/xync_client/Binance/sapi.py +0 -0
- {xync_client-0.0.25.dev77 → xync_client-0.0.25.dev78}/xync_client/Binance/web_c2c.py +0 -0
- {xync_client-0.0.25.dev77 → xync_client-0.0.25.dev78}/xync_client/BingX/__init__.py +0 -0
- {xync_client-0.0.25.dev77 → xync_client-0.0.25.dev78}/xync_client/BingX/agent.py +0 -0
- {xync_client-0.0.25.dev77 → xync_client-0.0.25.dev78}/xync_client/BingX/base.py +0 -0
- {xync_client-0.0.25.dev77 → xync_client-0.0.25.dev78}/xync_client/BingX/etype/ad.py +0 -0
- {xync_client-0.0.25.dev77 → xync_client-0.0.25.dev78}/xync_client/BingX/etype/pm.py +0 -0
- {xync_client-0.0.25.dev77 → xync_client-0.0.25.dev78}/xync_client/BingX/ex.py +0 -0
- {xync_client-0.0.25.dev77 → xync_client-0.0.25.dev78}/xync_client/BingX/req.mjs +0 -0
- {xync_client-0.0.25.dev77 → xync_client-0.0.25.dev78}/xync_client/BingX/sign.js +0 -0
- {xync_client-0.0.25.dev77 → xync_client-0.0.25.dev78}/xync_client/BitGet/__init__.py +0 -0
- {xync_client-0.0.25.dev77 → xync_client-0.0.25.dev78}/xync_client/BitGet/agent.py +0 -0
- {xync_client-0.0.25.dev77 → xync_client-0.0.25.dev78}/xync_client/BitGet/etype/ad.py +0 -0
- {xync_client-0.0.25.dev77 → xync_client-0.0.25.dev78}/xync_client/BitGet/ex.py +0 -0
- {xync_client-0.0.25.dev77 → xync_client-0.0.25.dev78}/xync_client/BitGet/req.mjs +0 -0
- {xync_client-0.0.25.dev77 → xync_client-0.0.25.dev78}/xync_client/Bybit/agent.py +0 -0
- {xync_client-0.0.25.dev77 → xync_client-0.0.25.dev78}/xync_client/Bybit/ex.py +0 -0
- {xync_client-0.0.25.dev77 → xync_client-0.0.25.dev78}/xync_client/Bybit/web_earn.py +0 -0
- {xync_client-0.0.25.dev77 → xync_client-0.0.25.dev78}/xync_client/Bybit/web_p2p.py +0 -0
- {xync_client-0.0.25.dev77 → xync_client-0.0.25.dev78}/xync_client/Gate/etype/ad.py +0 -0
- {xync_client-0.0.25.dev77 → xync_client-0.0.25.dev78}/xync_client/Gate/ex.py +0 -0
- {xync_client-0.0.25.dev77 → xync_client-0.0.25.dev78}/xync_client/Gate/premarket.py +0 -0
- {xync_client-0.0.25.dev77 → xync_client-0.0.25.dev78}/xync_client/Htx/agent.py +0 -0
- {xync_client-0.0.25.dev77 → xync_client-0.0.25.dev78}/xync_client/Htx/earn.py +0 -0
- {xync_client-0.0.25.dev77 → xync_client-0.0.25.dev78}/xync_client/Htx/etype/__init__.py +0 -0
- {xync_client-0.0.25.dev77 → xync_client-0.0.25.dev78}/xync_client/Htx/etype/ad.py +0 -0
- {xync_client-0.0.25.dev77 → xync_client-0.0.25.dev78}/xync_client/Htx/etype/cred.py +0 -0
- {xync_client-0.0.25.dev77 → xync_client-0.0.25.dev78}/xync_client/Htx/etype/pm.py +0 -0
- {xync_client-0.0.25.dev77 → xync_client-0.0.25.dev78}/xync_client/Htx/ex.py +0 -0
- {xync_client-0.0.25.dev77 → xync_client-0.0.25.dev78}/xync_client/KuCoin/etype/ad.py +0 -0
- {xync_client-0.0.25.dev77 → xync_client-0.0.25.dev78}/xync_client/KuCoin/etype/pm.py +0 -0
- {xync_client-0.0.25.dev77 → xync_client-0.0.25.dev78}/xync_client/KuCoin/ex.py +0 -0
- {xync_client-0.0.25.dev77 → xync_client-0.0.25.dev78}/xync_client/KuCoin/web.py +0 -0
- {xync_client-0.0.25.dev77 → xync_client-0.0.25.dev78}/xync_client/Okx/etype/ad.py +0 -0
- {xync_client-0.0.25.dev77 → xync_client-0.0.25.dev78}/xync_client/Okx/etype/pm.py +0 -0
- {xync_client-0.0.25.dev77 → xync_client-0.0.25.dev78}/xync_client/Okx/ex.py +0 -0
- {xync_client-0.0.25.dev77 → xync_client-0.0.25.dev78}/xync_client/TgWallet/agent.py +0 -0
- {xync_client-0.0.25.dev77 → xync_client-0.0.25.dev78}/xync_client/TgWallet/asset.py +0 -0
- {xync_client-0.0.25.dev77 → xync_client-0.0.25.dev78}/xync_client/TgWallet/auth.py +0 -0
- {xync_client-0.0.25.dev77 → xync_client-0.0.25.dev78}/xync_client/TgWallet/inAgent.py +0 -0
- {xync_client-0.0.25.dev77 → xync_client-0.0.25.dev78}/xync_client/TgWallet/order.py +0 -0
- {xync_client-0.0.25.dev77 → xync_client-0.0.25.dev78}/xync_client/TgWallet/pyd.py +0 -0
- {xync_client-0.0.25.dev77 → xync_client-0.0.25.dev78}/xync_client/TgWallet/pyro.py +0 -0
- {xync_client-0.0.25.dev77 → xync_client-0.0.25.dev78}/xync_client/TgWallet/web.py +0 -0
- {xync_client-0.0.25.dev77 → xync_client-0.0.25.dev78}/xync_client/__init__.py +0 -0
- {xync_client-0.0.25.dev77 → xync_client-0.0.25.dev78}/xync_client/loader.py +0 -0
- {xync_client-0.0.25.dev77 → xync_client-0.0.25.dev78}/xync_client/pm_unifier.py +0 -0
- {xync_client-0.0.25.dev77 → xync_client-0.0.25.dev78}/xync_client.egg-info/dependency_links.txt +0 -0
- {xync_client-0.0.25.dev77 → xync_client-0.0.25.dev78}/xync_client.egg-info/requires.txt +0 -0
- {xync_client-0.0.25.dev77 → xync_client-0.0.25.dev78}/xync_client.egg-info/top_level.txt +0 -0
|
@@ -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.
|
|
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,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()
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{xync_client-0.0.25.dev77 → xync_client-0.0.25.dev78}/tests/_todo_refact/Binance/test_binance.py
RENAMED
|
File without changes
|
{xync_client-0.0.25.dev77 → xync_client-0.0.25.dev78}/tests/_todo_refact/Bybit/test_bybit.py
RENAMED
|
File without changes
|
{xync_client-0.0.25.dev77 → xync_client-0.0.25.dev78}/tests/_todo_refact/Bybit/test_bybit_p2p.py
RENAMED
|
File without changes
|
|
File without changes
|
{xync_client-0.0.25.dev77 → xync_client-0.0.25.dev78}/tests/_todo_refact/Htx/test_htx_p2p.py
RENAMED
|
File without changes
|
{xync_client-0.0.25.dev77 → xync_client-0.0.25.dev78}/tests/_todo_refact/Wallet/test_agent.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{xync_client-0.0.25.dev77 → xync_client-0.0.25.dev78}/xync_client.egg-info/dependency_links.txt
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|