xync-schema 0.0.53.dev1__tar.gz → 0.0.54.dev2__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_schema-0.0.53.dev1 → xync_schema-0.0.54.dev2}/.pre-commit-config.yaml +1 -1
- {xync_schema-0.0.53.dev1/xync_schema.egg-info → xync_schema-0.0.54.dev2}/PKG-INFO +1 -1
- {xync_schema-0.0.53.dev1 → xync_schema-0.0.54.dev2}/xync_schema/enums.py +13 -3
- {xync_schema-0.0.53.dev1 → xync_schema-0.0.54.dev2}/xync_schema/models.py +44 -17
- {xync_schema-0.0.53.dev1 → xync_schema-0.0.54.dev2/xync_schema.egg-info}/PKG-INFO +1 -1
- {xync_schema-0.0.53.dev1 → xync_schema-0.0.54.dev2}/.env.sample +0 -0
- {xync_schema-0.0.53.dev1 → xync_schema-0.0.54.dev2}/.gitignore +0 -0
- {xync_schema-0.0.53.dev1 → xync_schema-0.0.54.dev2}/README.md +0 -0
- {xync_schema-0.0.53.dev1 → xync_schema-0.0.54.dev2}/makefile +0 -0
- {xync_schema-0.0.53.dev1 → xync_schema-0.0.54.dev2}/pyproject.toml +0 -0
- {xync_schema-0.0.53.dev1 → xync_schema-0.0.54.dev2}/setup.cfg +0 -0
- {xync_schema-0.0.53.dev1 → xync_schema-0.0.54.dev2}/tests/__init__.py +0 -0
- {xync_schema-0.0.53.dev1 → xync_schema-0.0.54.dev2}/tests/test_db.py +0 -0
- {xync_schema-0.0.53.dev1 → xync_schema-0.0.54.dev2}/xync_schema/__init__.py +0 -0
- {xync_schema-0.0.53.dev1 → xync_schema-0.0.54.dev2}/xync_schema/xtype.py +0 -0
- {xync_schema-0.0.53.dev1 → xync_schema-0.0.54.dev2}/xync_schema.egg-info/SOURCES.txt +0 -0
- {xync_schema-0.0.53.dev1 → xync_schema-0.0.54.dev2}/xync_schema.egg-info/dependency_links.txt +0 -0
- {xync_schema-0.0.53.dev1 → xync_schema-0.0.54.dev2}/xync_schema.egg-info/requires.txt +0 -0
- {xync_schema-0.0.53.dev1 → xync_schema-0.0.54.dev2}/xync_schema.egg-info/top_level.txt +0 -0
|
@@ -101,6 +101,13 @@ class FileType(IntEnum):
|
|
|
101
101
|
jpeg = 10
|
|
102
102
|
|
|
103
103
|
|
|
104
|
+
class AgentStatus(IntEnum):
|
|
105
|
+
off = 0
|
|
106
|
+
race = 1
|
|
107
|
+
listen = 2
|
|
108
|
+
# ... = 4
|
|
109
|
+
|
|
110
|
+
|
|
104
111
|
class SynonymType(IntEnum):
|
|
105
112
|
name = 1
|
|
106
113
|
ppo = 2
|
|
@@ -120,9 +127,12 @@ class SynonymType(IntEnum):
|
|
|
120
127
|
|
|
121
128
|
class Boundary(IntEnum):
|
|
122
129
|
no = 0
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
130
|
+
left_word = 1
|
|
131
|
+
right_word = 2
|
|
132
|
+
both_word = 3
|
|
133
|
+
left_all = 4
|
|
134
|
+
right_all = 5
|
|
135
|
+
both_all = 6
|
|
126
136
|
|
|
127
137
|
|
|
128
138
|
class SbpStrict(IntEnum):
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import re
|
|
1
2
|
import struct
|
|
2
3
|
import sys
|
|
3
4
|
from uuid import UUID
|
|
@@ -132,7 +133,6 @@ class Ex(Model):
|
|
|
132
133
|
url_login: str | None = CharField(63, null=True, description="With no protocol 'https://'")
|
|
133
134
|
typ: ExType = IntEnumField(ExType)
|
|
134
135
|
status: ExStatus = IntEnumField(ExStatus, default=ExStatus.plan)
|
|
135
|
-
is_started: bool = BooleanField(default=False)
|
|
136
136
|
logo: str = CharField(511, default="")
|
|
137
137
|
|
|
138
138
|
ads: ManyToManyRelation["Ad"]
|
|
@@ -309,7 +309,7 @@ class User(TgUser, TsTrait):
|
|
|
309
309
|
return int(await self.free_assets()) + int(await self.fiats_sum())
|
|
310
310
|
|
|
311
311
|
async def balances(self, ctd: bool = True) -> dict[int, int | float]: # ctd - convert to decimal
|
|
312
|
-
dbt = {
|
|
312
|
+
dbt = {1: 0, 2: 0, 3: 0} | {
|
|
313
313
|
c: v * 10 ** (-s) if ctd else v
|
|
314
314
|
for c, v, s in await Transaction.filter(receiver=self, status__gte=TS.signed)
|
|
315
315
|
.prefetch_related("cur")
|
|
@@ -512,8 +512,8 @@ class Agent(Model, TsTrait):
|
|
|
512
512
|
auth: dict = JSONField(default={})
|
|
513
513
|
actor: OneToOneRelation[Actor] = OneToOneField("models.Actor", "agent", on_update=CASCADE)
|
|
514
514
|
actor_id: int
|
|
515
|
-
active: bool = BooleanField(null=True, default=False)
|
|
516
515
|
expire_at: datetime | None = DatetimeSecField(null=True)
|
|
516
|
+
status: int = SmallIntField(default=0)
|
|
517
517
|
|
|
518
518
|
assets: BackwardFKRelation["Asset"]
|
|
519
519
|
|
|
@@ -527,17 +527,13 @@ class Agent(Model, TsTrait):
|
|
|
527
527
|
# include = "id", "actor__ex", "auth", "updated_at"
|
|
528
528
|
# computed = ["balance"]
|
|
529
529
|
|
|
530
|
-
def client(self, fbot, bbot):
|
|
530
|
+
def client(self, ex_cl, fbot, bbot, proxy=None):
|
|
531
531
|
module_name = f"xync_client.{self.actor.ex.name}.agent"
|
|
532
532
|
__import__(module_name)
|
|
533
533
|
client = sys.modules[module_name].AgentClient
|
|
534
|
-
return client(
|
|
535
|
-
|
|
536
|
-
|
|
537
|
-
module_name = f"xync_client.{self.actor.ex.name}.InAgent"
|
|
538
|
-
__import__(module_name)
|
|
539
|
-
client = sys.modules[module_name].InAgentClient
|
|
540
|
-
return client(self, fbot, bbot)
|
|
534
|
+
return client(
|
|
535
|
+
self, ex_cl, fbot, bbot, headers=self.auth.get("headers"), cookies=self.auth.get("cookies"), proxy=proxy
|
|
536
|
+
)
|
|
541
537
|
|
|
542
538
|
|
|
543
539
|
class Cond(Model, TsTrait):
|
|
@@ -611,6 +607,7 @@ class Pm(Model):
|
|
|
611
607
|
pmcurs: BackwardFKRelation["PmCur"] # no need. use curs
|
|
612
608
|
pmexs: BackwardFKRelation["PmEx"]
|
|
613
609
|
agents: BackwardFKRelation["PmAgent"]
|
|
610
|
+
topupable: BackwardFKRelation["TopUpAble"]
|
|
614
611
|
|
|
615
612
|
class Meta:
|
|
616
613
|
table_description = "Payment methods"
|
|
@@ -698,7 +695,7 @@ class MyAd(Model): # Road
|
|
|
698
695
|
pay_req: ForeignKeyNullableRelation["PayReq"] = ForeignKeyField(
|
|
699
696
|
"models.PayReq", "maked_ads", on_update=CASCADE, null=True
|
|
700
697
|
)
|
|
701
|
-
|
|
698
|
+
credexs: ManyToManyRelation["CredEx"] = ManyToManyField(
|
|
702
699
|
"models.CredEx", through="myad_cred", related_name="my_ads", on_update=CASCADE
|
|
703
700
|
)
|
|
704
701
|
race: BackwardFKRelation["Cred"]
|
|
@@ -711,9 +708,10 @@ class Race(Model):
|
|
|
711
708
|
road: ForeignKeyRelation[MyAd] = ForeignKeyField("models.MyAd", "race", on_update=CASCADE)
|
|
712
709
|
road_id: int
|
|
713
710
|
ceil: int = UInt4Field(null=True) # /10^cur.scale
|
|
714
|
-
target_place: int =
|
|
711
|
+
target_place: int = SmallIntField(default=1)
|
|
715
712
|
vm_filter: bool = BooleanField(default=True)
|
|
716
713
|
started: bool = BooleanField(default=True)
|
|
714
|
+
filter_amount: int = UInt4Field() # /10^cur.scale
|
|
717
715
|
updated_at: datetime | None = DatetimeSecField(auto_now=True)
|
|
718
716
|
|
|
719
717
|
stats: BackwardFKRelation["RaceStat"]
|
|
@@ -766,10 +764,10 @@ class PmAgent(Model):
|
|
|
766
764
|
table = "pm_agent"
|
|
767
765
|
unique_together = (("pm_id", "user_id"),)
|
|
768
766
|
|
|
769
|
-
def client(self, bot):
|
|
767
|
+
def client(self, browser, bot):
|
|
770
768
|
module_name = f"xync_client.Pms.{self.pm.norm.capitalize()}"
|
|
771
769
|
__import__(module_name)
|
|
772
|
-
return sys.modules[module_name].Client(self, bot)
|
|
770
|
+
return sys.modules[module_name].Client(self, browser, bot)
|
|
773
771
|
|
|
774
772
|
|
|
775
773
|
class PmCur(Model): # for fiat with no exs tie
|
|
@@ -836,13 +834,15 @@ class PmExBank(BaseModel): # banks for SBP
|
|
|
836
834
|
class Cred(Model):
|
|
837
835
|
pmcur: ForeignKeyRelation[PmCur] = ForeignKeyField("models.PmCur", on_update=CASCADE)
|
|
838
836
|
pmcur_id: int
|
|
839
|
-
detail: str = CharField(
|
|
837
|
+
detail: str = CharField(255)
|
|
840
838
|
name: str | None = CharField(127, null=True)
|
|
841
839
|
extra: str | None = CharField(255, null=True)
|
|
842
840
|
person: ForeignKeyRelation[Person] = ForeignKeyField("models.Person", "creds")
|
|
843
841
|
person_id: int
|
|
844
842
|
from_chat: int # todo: ForeignKeyNullableRelation["Order"] = ForeignKeyField("models.Order", null=True)
|
|
845
843
|
|
|
844
|
+
ovr_pm: ForeignKeyRelation[Pm] = ForeignKeyField("models.Pm", on_update=CASCADE, null=True)
|
|
845
|
+
ovr_pm_id: int
|
|
846
846
|
banks: ManyToManyRelation[PmExBank] = ManyToManyField("models.PmExBank", related_name="creds", on_update=CASCADE)
|
|
847
847
|
|
|
848
848
|
fiat: BackwardOneToOneRelation["Fiat"]
|
|
@@ -860,7 +860,34 @@ class Cred(Model):
|
|
|
860
860
|
|
|
861
861
|
class Meta:
|
|
862
862
|
table_description = "Currency accounts"
|
|
863
|
-
unique_together = (("person_id", "pmcur_id", "
|
|
863
|
+
unique_together = (("person_id", "pmcur_id", "ovr_pm_id"),)
|
|
864
|
+
|
|
865
|
+
|
|
866
|
+
@pre_save(Cred)
|
|
867
|
+
async def cred_ovr_pm(_meta, cred: Cred, _db, _updated: dict) -> None:
|
|
868
|
+
# payeer
|
|
869
|
+
op = None
|
|
870
|
+
if "payeer" in cred.extra.lower() or "payeer" in cred.detail.lower():
|
|
871
|
+
op = 366
|
|
872
|
+
elif re.match(r"[PpРр]\d{7,10}\b", cred.detail):
|
|
873
|
+
op = 366
|
|
874
|
+
elif re.match(r"[PpРр]\d{7,10}\b", cred.extra):
|
|
875
|
+
op = 366
|
|
876
|
+
# volet
|
|
877
|
+
if (
|
|
878
|
+
"volet" in cred.detail.lower()
|
|
879
|
+
or "advcash" in cred.detail.lower()
|
|
880
|
+
or "volet" in cred.extra.lower()
|
|
881
|
+
or "advcash" in cred.extra.lower()
|
|
882
|
+
):
|
|
883
|
+
op = 545
|
|
884
|
+
elif re.match(r"[REUTLD]\d{4} ?\d{4} ?\d{4}\b", cred.detail):
|
|
885
|
+
op = 545
|
|
886
|
+
elif re.match(r"[REUTLD]\d{4} ?\d{4} ?\d{4}\b", cred.extra):
|
|
887
|
+
op = 545
|
|
888
|
+
|
|
889
|
+
if op and op != (await cred.pmcur).pm_id:
|
|
890
|
+
cred.ovr_pm_id = op
|
|
864
891
|
|
|
865
892
|
|
|
866
893
|
class CredEx(Model):
|
|
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_schema-0.0.53.dev1 → xync_schema-0.0.54.dev2}/xync_schema.egg-info/dependency_links.txt
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|