Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit b93bab9

Browse files
committed
group_info
1 parent 8642fec commit b93bab9

2 files changed

Lines changed: 345 additions & 1 deletion

File tree

db/models.py

Lines changed: 321 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,13 @@
88
"PrivateMessage",
99
"GroupMessage",
1010
"NTUIDMapping",
11+
"SystemEmoji",
12+
"BottomEmoji",
13+
"EmojiConfig",
14+
"EmojiGroup",
15+
"EmojiMiscData",
16+
"FavEmojiInfo",
17+
"StickerPackage",
1118
"StickerMapping",
1219
]
1320

@@ -153,7 +160,7 @@ class SystemEmoji(Model):
153160

154161

155162
@DatabaseManager.register_model("emoji")
156-
class BottomeEmoji(Model):
163+
class BottomEmoji(Model):
157164
"""
158165
收藏的原创表情
159166
emoji.db -> bottom_emoji_table
@@ -300,3 +307,316 @@ class StickerMapping(Model):
300307
UNK_19: Mapped[str] = mapped_column("80942") # always empty
301308
UNK_20: Mapped[str] = mapped_column("80602", nullable=True) # always NULL
302309
UNK_21: Mapped[str] = mapped_column("80603", nullable=True) # always NULL
310+
311+
312+
@DatabaseManager.register_model("group_info")
313+
class DoubtGroupNotifyList(Model):
314+
"""
315+
过滤群通知
316+
group_info.db -> doubt_group_notify_list
317+
"""
318+
__tablename__ = "doubt_group_notify_list"
319+
timestamp: Mapped[int] = mapped_column("61001")
320+
type: Mapped[int] = mapped_column("61002")
321+
status: Mapped[int] = mapped_column("61003")
322+
group: Mapped[bytes] = mapped_column("61004")
323+
operatee: Mapped[bytes] = mapped_column("61005")
324+
operator: Mapped[bytes] = mapped_column("61006")
325+
operator_info: Mapped[bytes] = mapped_column("61007")
326+
operation_time: Mapped[int] = mapped_column("61008")
327+
UNK_09: Mapped[bytes] = mapped_column("61009")
328+
req_info: Mapped[str] = mapped_column("61010")
329+
additional: Mapped[str] = mapped_column("61011")
330+
331+
332+
@DatabaseManager.register_model("group_info")
333+
class GroupBulletin(Model):
334+
"""
335+
群公告(仅最新)
336+
group_info.db -> group_bulletin_table
337+
"""
338+
__tablename__ = "group_bulletin"
339+
groupUin: Mapped[int] = mapped_column("60001", primary_key=True)
340+
bulletin: Mapped[bytes] = mapped_column("64205")
341+
342+
343+
@DatabaseManager.register_model("group_info")
344+
class GroupDetailInfo(Model):
345+
"""
346+
群聊更多信息
347+
group_info.db -> group_detail_info_ver1
348+
"""
349+
__tablename__ = "group_detail_info_ver1"
350+
uin: Mapped[int] = mapped_column("60001", primary_key=True)
351+
name: Mapped[str] = mapped_column("60007")
352+
latest_bulletin: Mapped[bytes] = mapped_column("60216")
353+
desc: Mapped[bytes] = mapped_column("60217")
354+
remark: Mapped[str] = mapped_column("60026")
355+
owner_uid: Mapped[str] = mapped_column("60002")
356+
ctime: Mapped[int] = mapped_column("60004")
357+
UNK_008: Mapped[int] = mapped_column("60203")
358+
UNK_009: Mapped[int] = mapped_column("60204")
359+
max_member: Mapped[int] = mapped_column("60005")
360+
member_count: Mapped[int] = mapped_column("60006")
361+
UNK_012: Mapped[int] = mapped_column("60205")
362+
UNK_013: Mapped[int] = mapped_column("60206")
363+
UNK_014: Mapped[int] = mapped_column("60207")
364+
UNK_015: Mapped[int] = mapped_column("60210")
365+
UNK_016: Mapped[int] = mapped_column("60211")
366+
UNK_017: Mapped[int] = mapped_column("60212")
367+
UNK_018: Mapped[int] = mapped_column("60011")
368+
UNK_019: Mapped[int] = mapped_column("60214")
369+
tags: Mapped[str] = mapped_column("60218")
370+
UNK_021: Mapped[int] = mapped_column("60221")
371+
question: Mapped[str] = mapped_column("60224")
372+
UNK_023: Mapped[int] = mapped_column("60236")
373+
UNK_024: Mapped[int] = mapped_column("60238")
374+
UNK_025: Mapped[bytes] = mapped_column("60239")
375+
legacy_desc: Mapped[bytes] = mapped_column("60240")
376+
UNK_027: Mapped[bytes] = mapped_column("60241")
377+
UNK_028: Mapped[bytes] = mapped_column("60242")
378+
UNK_029: Mapped[int] = mapped_column("60243")
379+
UNK_030: Mapped[bytes] = mapped_column("60244")
380+
UNK_031: Mapped[int] = mapped_column("60027")
381+
UNK_032: Mapped[int] = mapped_column("60028")
382+
UNK_033: Mapped[int] = mapped_column("60255")
383+
UNK_034: Mapped[int] = mapped_column("60256")
384+
UNK_035: Mapped[int] = mapped_column("60258")
385+
UNK_036: Mapped[bytes] = mapped_column("60261")
386+
UNK_037: Mapped[str] = mapped_column("60267")
387+
UNK_038: Mapped[int] = mapped_column("60274")
388+
UNK_039: Mapped[int] = mapped_column("60277")
389+
UNK_040: Mapped[int] = mapped_column("60279")
390+
UNK_041: Mapped[int] = mapped_column("60280")
391+
UNK_042: Mapped[int] = mapped_column("60281")
392+
UNK_043: Mapped[int] = mapped_column("60282")
393+
UNK_044: Mapped[int] = mapped_column("60283")
394+
UNK_045: Mapped[int] = mapped_column("60284")
395+
UNK_046: Mapped[int] = mapped_column("60285")
396+
UNK_047: Mapped[int] = mapped_column("60286")
397+
UNK_048: Mapped[int] = mapped_column("60287")
398+
UNK_049: Mapped[int] = mapped_column("60288")
399+
UNK_050: Mapped[int] = mapped_column("60291")
400+
UNK_051: Mapped[int] = mapped_column("60292")
401+
UNK_052: Mapped[int] = mapped_column("60294")
402+
UNK_053: Mapped[int] = mapped_column("60295")
403+
UNK_054: Mapped[int] = mapped_column("60296")
404+
UNK_055: Mapped[int] = mapped_column("60299")
405+
UNK_056: Mapped[int] = mapped_column("60300")
406+
UNK_057: Mapped[int] = mapped_column("60301")
407+
UNK_058: Mapped[int] = mapped_column("60219")
408+
UNK_059: Mapped[int] = mapped_column("60220")
409+
UNK_060: Mapped[int] = mapped_column("60222")
410+
UNK_061: Mapped[int] = mapped_column("60223")
411+
UNK_062: Mapped[str] = mapped_column("60225")
412+
UNK_063: Mapped[int] = mapped_column("60226")
413+
UNK_064: Mapped[int] = mapped_column("60227")
414+
UNK_065: Mapped[int] = mapped_column("60228")
415+
UNK_066: Mapped[int] = mapped_column("60229")
416+
UNK_067: Mapped[int] = mapped_column("60230")
417+
UNK_068: Mapped[int] = mapped_column("60231")
418+
UNK_069: Mapped[str] = mapped_column("60232")
419+
UNK_070: Mapped[str] = mapped_column("60233")
420+
UNK_071: Mapped[int] = mapped_column("60234")
421+
UNK_072: Mapped[str] = mapped_column("60235")
422+
UNK_073: Mapped[int] = mapped_column("60237")
423+
UNK_074: Mapped[int] = mapped_column("60247")
424+
UNK_075: Mapped[int] = mapped_column("60248")
425+
UNK_076: Mapped[int] = mapped_column("60249")
426+
UNK_077: Mapped[int] = mapped_column("60250")
427+
UNK_078: Mapped[int] = mapped_column("60251")
428+
UNK_079: Mapped[int] = mapped_column("60252")
429+
UNK_080: Mapped[int] = mapped_column("60253")
430+
UNK_081: Mapped[int] = mapped_column("60254")
431+
UNK_082: Mapped[int] = mapped_column("60259")
432+
UNK_083: Mapped[int] = mapped_column("60018")
433+
UNK_084: Mapped[int] = mapped_column("60262")
434+
UNK_085: Mapped[int] = mapped_column("60263")
435+
UNK_086: Mapped[int] = mapped_column("60264")
436+
UNK_087: Mapped[int] = mapped_column("60265")
437+
UNK_088: Mapped[int] = mapped_column("60266")
438+
UNK_089: Mapped[int] = mapped_column("60268")
439+
UNK_090: Mapped[int] = mapped_column("60269")
440+
UNK_091: Mapped[int] = mapped_column("60270")
441+
UNK_092: Mapped[int] = mapped_column("60271")
442+
UNK_093: Mapped[int] = mapped_column("60272")
443+
UNK_094: Mapped[int] = mapped_column("60275")
444+
UNK_095: Mapped[int] = mapped_column("60276")
445+
UNK_096: Mapped[int] = mapped_column("60278")
446+
UNK_097: Mapped[int] = mapped_column("60302")
447+
UNK_098: Mapped[int] = mapped_column("60304")
448+
UNK_099: Mapped[int] = mapped_column("60306")
449+
UNK_100: Mapped[int] = mapped_column("60308")
450+
UNK_101: Mapped[bytes] = mapped_column("20017")
451+
UNK_102: Mapped[int] = mapped_column("60312")
452+
UNK_103: Mapped[int] = mapped_column("60313")
453+
UNK_104: Mapped[int] = mapped_column("66530")
454+
UNK_105: Mapped[int] = mapped_column("60298")
455+
UNK_106: Mapped[str] = mapped_column("60289")
456+
UNK_107: Mapped[int] = mapped_column("60307")
457+
UNK_108: Mapped[bytes] = mapped_column("60305")
458+
UNK_109: Mapped[bytes] = mapped_column("60257")
459+
UNK_110: Mapped[bytes] = mapped_column("60303")
460+
UNK_111: Mapped[int] = mapped_column("60290")
461+
leave_status: Mapped[int] = mapped_column("60340")
462+
UNK_113: Mapped[int] = mapped_column("60344")
463+
464+
465+
@DatabaseManager.register_model("group_info")
466+
class GroupEssence(Model):
467+
"""
468+
群精华消息
469+
group_info.db -> group_essence
470+
"""
471+
__tablename__ = "group_essence"
472+
group_uin: Mapped[int] = mapped_column("60001", primary_key=True)
473+
seq: Mapped[int] = mapped_column("67501", primary_key=True)
474+
msg_random: Mapped[int] = mapped_column("67502", primary_key=True)
475+
sender_uin: Mapped[int] = mapped_column("67503")
476+
sender_nickname: Mapped[str] = mapped_column("67504")
477+
status: Mapped[int] = mapped_column("67505")
478+
setter_uin: Mapped[int] = mapped_column("67506")
479+
setter_nickname: Mapped[str] = mapped_column("67507")
480+
timestamp: Mapped[int] = mapped_column("67508")
481+
UNK_10: Mapped[int] = mapped_column("67509")
482+
483+
484+
@DatabaseManager.register_model("group_info")
485+
class GroupList(Model):
486+
"""
487+
群列表
488+
group_info.db -> group_list
489+
"""
490+
__tablename__ = "group_list"
491+
uin: Mapped[int] = mapped_column("60001", primary_key=True)
492+
UNK_02: Mapped[int] = mapped_column("60221")
493+
ctime: Mapped[int] = mapped_column("60004")
494+
max_member: Mapped[int] = mapped_column("60005")
495+
member_count: Mapped[int] = mapped_column("60006")
496+
name: Mapped[str] = mapped_column("60007")
497+
UNK_07: Mapped[int] = mapped_column("60008")
498+
UNK_08: Mapped[int] = mapped_column("60009")
499+
UNK_09: Mapped[int] = mapped_column("60020")
500+
UNK_10: Mapped[int] = mapped_column("60011")
501+
UNK_11: Mapped[int] = mapped_column("60010")
502+
UNK_12: Mapped[int] = mapped_column("60017")
503+
UNK_13: Mapped[int] = mapped_column("60018")
504+
remark: Mapped[str] = mapped_column("60026")
505+
UNK_15: Mapped[int] = mapped_column("60022")
506+
UNK_16: Mapped[int] = mapped_column("60023")
507+
UNK_17: Mapped[int] = mapped_column("60027")
508+
UNK_18: Mapped[int] = mapped_column("60028")
509+
UNK_19: Mapped[int] = mapped_column("60029")
510+
UNK_20: Mapped[int] = mapped_column("60030")
511+
UNK_21: Mapped[int] = mapped_column("60031")
512+
UNK_22: Mapped[int] = mapped_column("60269")
513+
UNK_23: Mapped[int] = mapped_column("60012")
514+
UNK_24: Mapped[int] = mapped_column("60034")
515+
UNK_25: Mapped[int] = mapped_column("60035")
516+
UNK_26: Mapped[int] = mapped_column("60036")
517+
UNK_27: Mapped[int] = mapped_column("60037")
518+
UNK_28: Mapped[int] = mapped_column("60038")
519+
UNK_29: Mapped[int] = mapped_column("60204")
520+
UNK_30: Mapped[int] = mapped_column("60238")
521+
UNK_31: Mapped[int] = mapped_column("60258")
522+
UNK_32: Mapped[int] = mapped_column("60277")
523+
UNK_33: Mapped[bytes] = mapped_column("60040")
524+
UNK_34: Mapped[int] = mapped_column("60206")
525+
UNK_35: Mapped[int] = mapped_column("60255")
526+
UNK_36: Mapped[int] = mapped_column("60256")
527+
UNK_37: Mapped[int] = mapped_column("60279")
528+
UNK_38: Mapped[int] = mapped_column("60280")
529+
UNK_39: Mapped[int] = mapped_column("60281")
530+
UNK_40: Mapped[int] = mapped_column("60299")
531+
latest_bulletin: Mapped[bytes] = mapped_column("60216")
532+
UNK_42: Mapped[int] = mapped_column("60310")
533+
UNK_43: Mapped[int] = mapped_column("60259")
534+
UNK_44: Mapped[int] = mapped_column("60304")
535+
UNK_45: Mapped[str] = mapped_column("60267")
536+
UNK_46: Mapped[int] = mapped_column("60294")
537+
UNK_47: Mapped[int] = mapped_column("60295")
538+
UNK_48: Mapped[int] = mapped_column("60250")
539+
UNK_49: Mapped[int] = mapped_column("60262")
540+
UNK_50: Mapped[int] = mapped_column("60298")
541+
UNK_51: Mapped[int] = mapped_column("60252")
542+
UNK_52: Mapped[int] = mapped_column("60344")
543+
544+
545+
@DatabaseManager.register_model("group_info")
546+
class GroupMember(Model):
547+
"""
548+
群成员
549+
group_info.db -> group_member
550+
"""
551+
__tablename__ = "group_member3"
552+
group_nickname: Mapped[str] = mapped_column("64003")
553+
private_nickname: Mapped[str] = mapped_column("20002")
554+
group_uin: Mapped[int] = mapped_column("60001", primary_key=True)
555+
uid: Mapped[str] = mapped_column("1000", primary_key=True)
556+
UNK_05: Mapped[str] = mapped_column("1001")
557+
uin: Mapped[int] = mapped_column("1002")
558+
UNK_07: Mapped[int] = mapped_column("64002")
559+
UNK_08: Mapped[bytes] = mapped_column("64004")
560+
UNK_09: Mapped[int] = mapped_column("64005")
561+
UNK_10: Mapped[int] = mapped_column("64006")
562+
join_time: Mapped[int] = mapped_column("64007")
563+
last_message_time: Mapped[int] = mapped_column("64008")
564+
last_ban_ends: Mapped[int] = mapped_column("64009")
565+
admin: Mapped[int] = mapped_column("64010")
566+
UNK_15: Mapped[int] = mapped_column("64011")
567+
UNK_16: Mapped[int] = mapped_column("64012")
568+
UNK_17: Mapped[int] = mapped_column("64013")
569+
UNK_18: Mapped[int] = mapped_column("64017")
570+
UNK_19: Mapped[int] = mapped_column("64015")
571+
status: Mapped[int] = mapped_column("64016")
572+
UNK_21: Mapped[int] = mapped_column("64018")
573+
UNK_22: Mapped[int] = mapped_column("64034")
574+
UNK_23: Mapped[int] = mapped_column("64020")
575+
UNK_24: Mapped[int] = mapped_column("64021")
576+
UNK_25: Mapped[int] = mapped_column("64022")
577+
custom_badge: Mapped[str] = mapped_column("64023")
578+
UNK_27: Mapped[int] = mapped_column("64024")
579+
UNK_28: Mapped[int] = mapped_column("64025")
580+
UNK_29: Mapped[int] = mapped_column("64026")
581+
UNK_30: Mapped[int] = mapped_column("64027")
582+
UNK_31: Mapped[int] = mapped_column("64028")
583+
UNK_32: Mapped[str] = mapped_column("64029")
584+
UNK_33: Mapped[int] = mapped_column("64030")
585+
UNK_34: Mapped[int] = mapped_column("64031")
586+
UNK_35: Mapped[int] = mapped_column("64032")
587+
level: Mapped[int] = mapped_column("64035")
588+
589+
590+
@DatabaseManager.register_model("group_info")
591+
class GroupLevelBadge(Model):
592+
"""
593+
群等级头衔信息
594+
group_info.db -> group_member_level_info
595+
"""
596+
__tablename__ = "group_member_level_info"
597+
uin: Mapped[int] = mapped_column("60001", primary_key=True)
598+
group_level: Mapped[int] = mapped_column("67100")
599+
UNK_3: Mapped[int] = mapped_column("67101")
600+
UNK_4: Mapped[int] = mapped_column("67102")
601+
badges: Mapped[bytes] = mapped_column("67103")
602+
UNK_6: Mapped[int] = mapped_column("67104")
603+
604+
605+
@DatabaseManager.register_model("group_info")
606+
class GroupNotify(Model):
607+
"""
608+
群通知
609+
group_info.db -> group_notify_list
610+
"""
611+
__tablename__ = "group_notify_list"
612+
timestamp: Mapped[int] = mapped_column("61001")
613+
type: Mapped[int] = mapped_column("61002")
614+
status: Mapped[int] = mapped_column("61003")
615+
group: Mapped[bytes] = mapped_column("61004")
616+
operatee: Mapped[bytes] = mapped_column("61005")
617+
operator: Mapped[bytes] = mapped_column("61006")
618+
operator_info: Mapped[bytes] = mapped_column("61007")
619+
operation_time: Mapped[int] = mapped_column("61008")
620+
UNK_09: Mapped[bytes] = mapped_column("61009")
621+
req_info: Mapped[str] = mapped_column("61010")
622+
additional: Mapped[str] = mapped_column("61011")

query2orm.py

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
query = """
2+
"61001" INTEGER,
3+
"61002" INTEGER,
4+
"61003" INTEGER,
5+
"61004" BLOB,
6+
"61005" BLOB,
7+
"61006" BLOB,
8+
"61007" BLOB,
9+
"61008" INTEGER,
10+
"61009" BLOB,
11+
"61010" TEXT,
12+
"61011" TEXT,
13+
"""
14+
15+
data_types = {
16+
"INTEGER": "int",
17+
"BLOB": "bytes",
18+
"TEXT": "str",
19+
}
20+
21+
for idx, line in enumerate(query.split("\n")):
22+
if line:
23+
_ = line.strip().removesuffix(",").split("\t")
24+
print(f"UNK_{idx}: Mapped[{data_types[_[1]]}] = mapped_column({_[0]})")

0 commit comments

Comments
 (0)