Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
1380 commits
Select commit Hold shift + click to select a range
b48083b
Show left/right arrows for emoji in numberscroll (#1451)
RheingoldRiver Sep 23, 2021
cac338c
Use transformations table in graph (#1453)
chasehult Sep 24, 2021
be6e756
Add get_aliased_attribute (#1452)
chasehult Sep 24, 2021
d0890c8
Add ^attr command (#1454)
RheingoldRiver Sep 24, 2021
c37243b
Add a couple monster attr aliases (#1456)
RheingoldRiver Sep 24, 2021
137bb97
Add some basic error handling (#1457)
RheingoldRiver Sep 24, 2021
2bb2a88
Fix PadEvents (#1459)
chasehult Sep 29, 2021
91e6f39
Use rollover instead of day change (#1460)
chasehult Sep 29, 2021
f65977e
Use new TSUtils functions for AdPEM (#1462)
chasehult Sep 30, 2021
9e48783
Use DAY_CHANGE instead of ROLLOVER (#1464)
chasehult Sep 30, 2021
0f744d7
Fix Emoji Cache issues (#1465)
chasehult Sep 30, 2021
9c3f621
Add transform alias tokens (#1466)
chasehult Oct 1, 2021
bec7dcf
Add regdate attr (#1467)
chasehult Oct 1, 2021
ad126b5
Add `dateadded` as an alias (#1468)
chasehult Oct 1, 2021
5a595f6
Fix idtest remove (#1476)
chasehult Oct 7, 2021
c8f8857
Update daily info header (#1477)
RheingoldRiver Oct 9, 2021
f22968d
Add daily AEP post (#1479)
chasehult Oct 10, 2021
8cbdec2
[AdPEM] Notify on verification ignore (#1481)
chasehult Oct 11, 2021
7df5183
Make padto work with aliases (#1483)
turtleworks Oct 12, 2021
9173c33
Fix PadEvents multiple pings (#1487)
chasehult Oct 14, 2021
978c4a2
Instantiate MonsterIndex objects synchronously (#1488)
chasehult Oct 14, 2021
24111ca
Change TURN to CD (#1489)
ethannp Oct 16, 2021
b0eba17
Use NEW_DAY in AdPEM (#1490)
chasehult Oct 17, 2021
e9d7549
Add hasgem prefix (#1491)
chasehult Oct 17, 2021
56b10ed
Add some extra end user data statements (#1492)
chasehult Oct 18, 2021
5b673c4
Added awakening restricted latents to ^pdchu help message (#1493)
ethannp Oct 22, 2021
385033a
Edit ^events to include Discord countdown (#1494)
ethannp Oct 27, 2021
be60a2f
Don't multi-ping for AEP and AED (#1496)
chasehult Nov 2, 2021
511bfb2
Make adpem data queryable (#1495)
chasehult Nov 3, 2021
aa1df0a
[AdPEM] Remove duplicates in valid list (#1498)
chasehult Nov 7, 2021
1c7bd5b
Use aiomysql in CRUD (#1499)
chasehult Nov 9, 2021
6a1d0b0
Propagate orbskin modifier through evos (#1503)
chasehult Nov 14, 2021
8418999
Allow comments in ^id (#1504)
chasehult Nov 15, 2021
c53036d
Fix timezone in ^whichinvade (#1505)
chasehult Nov 22, 2021
271c788
[CRUD] Update info.json (#1500)
chasehult Nov 27, 2021
29ed1c8
Move ClosableEmbedMenu & SimpleTextMenu to tsutils (#1506)
RheingoldRiver Dec 7, 2021
06e701f
Add untradable message to monidlistener (#1511)
ethannp Dec 9, 2021
dd0c05d
Add eHP to leader skill display (#1512)
ethannp Dec 9, 2021
c1d66bf
Add new pipeline commands (#1513)
chasehult Dec 17, 2021
68a0fc3
Set pulls to 5 (#1515)
chasehult Dec 23, 2021
954be28
Shout if using VEM and not opted in (#1516)
chasehult Dec 26, 2021
ba52ff7
Rename VEM to AdPEM (#1517)
chasehult Dec 29, 2021
29dcd78
[adpem] support either 4 or 5 pulls (#1521)
RheingoldRiver Jan 1, 2022
e689023
Force adpem length to be 4 now (#1523)
RheingoldRiver Jan 1, 2022
570b561
Add type hints to the database & refactor (#1524)
chasehult Jan 2, 2022
56e660f
Add awoken skill emojis to AS text (#1528)
RheingoldRiver Jan 2, 2022
fcd73a2
Add blob boost (#1530)
chasehult Jan 3, 2022
389d123
Support awo emojis in AS boosting multiple awo (#1531)
RheingoldRiver Jan 3, 2022
c7829aa
Fix adpem optin discrepancy issue (#1532)
muffin-rice Jan 4, 2022
1e658ab
Add active subskills and parts (#1539)
chasehult Jan 9, 2022
33e968f
Fix showstats (#1541)
chasehult Jan 9, 2022
d2e307b
Add compound awoken skill handling (#1540)
chasehult Jan 9, 2022
28ce448
Fix active skills without types (#1550)
RheingoldRiver Jan 9, 2022
1f90ca2
Fix AdPEM issues (#1555)
chasehult Jan 10, 2022
b7c6849
Add ^adpem config maxrolls (#1542)
chasehult Jan 10, 2022
f5fcf8b
Move ActiveSkillModel @properties to init (#1556)
RheingoldRiver Jan 10, 2022
4d27b6c
Use number_emoji_small (#1557)
RheingoldRiver Jan 10, 2022
d2e0755
Use right hook arrow instead of right arrow (#1558)
RheingoldRiver Jan 10, 2022
0b86788
Add cooldowns to subskills (#1559)
chasehult Jan 11, 2022
6bad8c0
Change transform emoji again (#1560)
RheingoldRiver Jan 11, 2022
c04e453
Bold subskill cd (#1561)
RheingoldRiver Jan 11, 2022
173a24a
Allow group to be None (#1563)
chasehult Jan 12, 2022
ce5f6ce
Add padglobal eventswap command (#1562)
turtleworks Jan 14, 2022
aed841f
Default group to red (#1566)
chasehult Jan 19, 2022
e12bc36
Change 'defense' text to shield emoji (#1567)
RheingoldRiver Jan 20, 2022
d7bd16d
Fix autoevent matching function (#1570)
chasehult Jan 23, 2022
d77e6cb
Fix ^pde active (#1569)
chasehult Jan 23, 2022
bc7d5f4
Allow less than max pulls (#1571)
RheingoldRiver Jan 24, 2022
ce41e32
shield_amount emoji (#1574)
RheingoldRiver Jan 27, 2022
66d1fac
Add depth to the index and priority tuple (#1577)
chasehult Jan 28, 2022
c698c9a
Add adjusted rarity calculation (#1579)
chasehult Jan 29, 2022
9d50d31
Identify evo gems by name, not shop (#1580)
chasehult Jan 29, 2022
8d625e6
Move MonsterImage to tsutils (#1584)
RheingoldRiver Feb 1, 2022
7c9d2c9
Coalesce repetitive events (#1582)
chasehult Feb 1, 2022
f4a1e2d
Use tsutils ClosableEmbedMenu for which (#1585)
RheingoldRiver Feb 1, 2022
7c6c37e
Disallow possessive token propagation to other posessive tokens (#1587)
chasehult Feb 1, 2022
dbf2513
Make name_tokens and fluff_tokens disjoint (#1589)
chasehult Feb 1, 2022
beac32d
Refactor the Monster Index (#1590)
chasehult Feb 2, 2022
8e587e6
add note to readme about python 3.8 (#1592)
RheingoldRiver Feb 7, 2022
b3df92b
Use the American spelling of defense (#1593)
chasehult Feb 8, 2022
bb74efa
Fix ^events (#1594)
chasehult Feb 10, 2022
658891b
Tell the user which monster wasn't found by padbuildimg (#1595)
turtleworks Feb 14, 2022
0dd70ff
Add more dungeon boost names (#1596)
RheingoldRiver Feb 14, 2022
5c05bd4
brick for this awakening (#1597)
RheingoldRiver Feb 19, 2022
60f3ec1
Straight refactor to use tsutils MonsterLink class (#1599)
RheingoldRiver Feb 23, 2022
04780f7
Use header_link instead of puzzledragonx (#1600)
RheingoldRiver Feb 23, 2022
36c02c0
Add linktarget preference & apply it for links, lookup (#1601)
RheingoldRiver Feb 24, 2022
b6e42a3
Use send confirmation, cancellation message for idset (#1602)
RheingoldRiver Feb 24, 2022
d42332c
Add padglobal prepend (#1604)
turtleworks Feb 25, 2022
f645565
Fix allmats for monsters with no mats (#1606)
turtleworks Feb 26, 2022
c2f1b04
Move Cogs (#1609)
chasehult Mar 1, 2022
90b6cfc
compatibility update for tsutils 7.0.0 (#1611)
RheingoldRiver Mar 2, 2022
2cb4e3d
Update info.json with right repo url (#1612)
RheingoldRiver Mar 2, 2022
6e19120
Use custom_emoji import from tsutils (#1613)
RheingoldRiver Mar 2, 2022
c93ed08
Update TSUtils to 7.0.1 (#1614)
chasehult Mar 3, 2022
aaf72e1
Record historic lookups after querying (#1615)
RheingoldRiver Mar 5, 2022
a42086b
QuerySettings instead of Color in menus (#1617)
RheingoldRiver Mar 6, 2022
185ad15
Stop storing padinfo embedcolor (#1618)
RheingoldRiver Mar 6, 2022
14703f6
add color to showstats (#1619)
RheingoldRiver Mar 6, 2022
2f2c228
Fix leaderskill when no right query (#1620)
RheingoldRiver Mar 8, 2022
9d4521c
Create subdungeonlist (#1623)
chasehult Mar 16, 2022
41709d0
Update for TSUtils 7.2 (#1622)
chasehult Mar 16, 2022
9b34114
Use MonsterHeader for monidlistener messages (#1625)
RheingoldRiver Mar 21, 2022
5fb6861
Use MonsterHeader in dgcog (#1626)
RheingoldRiver Mar 21, 2022
54838b0
Adjust dgid ui (#1627)
RheingoldRiver Mar 21, 2022
6f61c7f
Add subquery tokens (#1628)
chasehult Mar 24, 2022
0c2ba1c
Let attr tokens fall back to matching subattr (#1629)
chasehult Mar 24, 2022
9ed4449
Add hazmat as a hasmat alias (#1630)
chasehult Mar 24, 2022
e68e09d
Add ^idset list contents (#1633)
kary5678 Mar 29, 2022
4cfb08f
Fix order of cooldown text for transforms (#1634)
RheingoldRiver Mar 31, 2022
edecb02
Say whether a monster has a(n) (un)tradable evo gem (#1635)
RheingoldRiver Mar 31, 2022
ed3b347
Readd ability to post multiple ids in the same message (#1636)
RheingoldRiver Mar 31, 2022
cfd7296
Don't cache monster ids (#1637)
chasehult Apr 1, 2022
b8fe6a7
Remove every last trace of id1 for real this time i swear (#1638)
chasehult Apr 2, 2022
c1dee89
Add OrToken (#1639)
chasehult Apr 3, 2022
f3a246b
add gbr for guardbreak (#1640)
RheingoldRiver Apr 3, 2022
d4b43e8
Add last query settings (#1641)
RheingoldRiver Apr 3, 2022
cb089a2
Awakening documentation (#1642)
RheingoldRiver Apr 3, 2022
679ce3c
Move exportmodifiers to dbcog (#1644)
RheingoldRiver Apr 3, 2022
46a6eb0
Use _do_idsetting & add ormod_prio setting (#1645)
RheingoldRiver Apr 3, 2022
de54f09
use any nickname for crud cog awo skill editing (#1650)
RheingoldRiver Apr 10, 2022
ec25f84
Fix KNOWN_AWOKEN_SKILL_TOKENS (#1651)
RheingoldRiver Apr 10, 2022
3317a93
Stop saying "dadguide" in dbcog logging msgs (#1656)
RheingoldRiver Apr 19, 2022
0808c0a
Display friendly error if dgid data is missing (#1657)
RheingoldRiver Apr 19, 2022
11b8ee1
Add stream-safe flag (#1658)
chasehult Apr 19, 2022
0e4ba06
Fix subqueries in id3 (#1660)
RheingoldRiver Apr 22, 2022
032b37e
Create skyo command (#1659)
RheingoldRiver Apr 27, 2022
86940f9
Change Some Token Types (#1662)
chasehult Apr 28, 2022
da9d8a3
Create padglobal rename (#1666)
kary5678 Apr 29, 2022
d25bf24
Create tradeable command (#1664)
kary5678 Apr 29, 2022
4c1a1a8
Add dungeon aliases to `^skyo` (#1669)
chasehult May 6, 2022
727f410
Fix dungeon aliases (#1670)
chasehult May 6, 2022
af71716
Improve dgid help text (#1671)
chasehult May 7, 2022
d077b0f
Choose transforms deterministically (#1672)
chasehult May 7, 2022
631ef66
Refactor ^tradeable command (#1674)
RheingoldRiver May 14, 2022
820ecf0
Fix removing invalid flags that have args (#1675)
chasehult May 15, 2022
83a4f6a
Add groups to monsters (#1677)
chasehult May 17, 2022
23dd886
Add secondary series to CRUD and graph (#1678)
chasehult May 19, 2022
201f0b0
Add unsorted series to unsorted cards (#1681)
chasehult May 20, 2022
29cb90e
Allow multiple trees and groups (#1682)
chasehult May 21, 2022
e87a38c
[EditSeries] Display changes more clearly (#1683)
chasehult May 21, 2022
3f97cef
Display first on new line (#1684)
chasehult May 21, 2022
65d9548
Add clarity to docstring and remove unnecessary whitespace (#1685)
chasehult May 21, 2022
6a337cc
Rename PadGuideDB to PipelineUI (#1686)
chasehult May 21, 2022
a55b7cc
Update pad-cogs README (#1687)
chasehult May 21, 2022
a467c81
Add better help messages (#1688)
chasehult May 21, 2022
33af21b
Fix editseries add (#1690)
chasehult May 23, 2022
ce1e9fd
Sort monsters in padmonitor (#1689)
chasehult May 23, 2022
48fd640
Add ja searching to ^attr (#1691)
chasehult May 24, 2022
7a9f4f3
Add gfeshop modifier (#1692)
chasehult May 24, 2022
f9de321
Fix azurlane cog (#1695)
chasehult May 24, 2022
6d8febb
Remove schoolidol cog, it's unused (#1696)
RheingoldRiver May 25, 2022
9baae6e
Fallback to Jaro if substring fails in monster attibutes in id (#1697)
chasehult May 26, 2022
8a46459
Migrate Azurlane to menu2 (#1698)
RheingoldRiver May 26, 2022
946f8f1
Set ready flag per-index (#1699)
chasehult May 27, 2022
7463e99
Strip angle brackets from github names (#1700)
chasehult May 28, 2022
cbf7afd
Add selfhasmat (#1704)
chasehult May 29, 2022
2282052
Make debugiddist case insensitive (#1706)
RheingoldRiver May 30, 2022
ff3e9c6
Add new awoken skills (#1708)
chasehult May 31, 2022
9817bc1
Add subquery_data to ExtraInfo (#1714)
chasehult Jun 1, 2022
c939655
Remove committed typo
chasehult Jun 2, 2022
2df8bbf
Remove repeated assignment to defense (#1718)
Blastose Jun 4, 2022
fd015c7
Use azurlane URL rather than cloudfront (#1720)
chasehult Jun 6, 2022
a97c25e
Add IDRangeToken & use subqueries in OrToken (#1722)
chasehult Jun 12, 2022
eba9edd
Freeze requirements.txt for performance from fresh start (#1726)
TsubakiBotPad Jun 13, 2022
80a0c89
Fix extra parameter in nadiff (#1728)
TsubakiBotPad Jun 13, 2022
76fc9b9
Update README setup instructions (#1727)
TsubakiBotPad Jun 13, 2022
8e61433
PADle (#1715)
ethannp Jun 14, 2022
dda1b26
Upgrade Discord menu to 0.16.15 (#1729)
TsubakiBotPad Jun 14, 2022
b3de2cc
Set default PADle to Tsubaki & use csv (#1732)
ethannp Jun 14, 2022
e31862f
CSV reader for padle set (#1733)
ethannp Jun 14, 2022
73d512d
Fix first PADle day (#1734)
ethannp Jun 14, 2022
085a1c2
Menu2 for PADle globalstats (#1741)
ethannp Jun 16, 2022
21cf301
Misc. PADle fixes (#1738)
ethannp Jun 16, 2022
924aa75
Add Chu to buttoninfo (#1745)
kary5678 Jun 16, 2022
60d083a
Print name of modified file in CRUD commits (#1743)
kary5678 Jun 16, 2022
393d11c
Misc. PADle changes 2 (#1746)
ethannp Jun 16, 2022
5428621
Validrules docstring and username to start message (#1748)
ethannp Jun 17, 2022
23b055b
[PADle] Fix filter command (#1749)
ethannp Jun 17, 2022
42e6716
[PADle] Fix unsubscribe (#1750)
ethannp Jun 17, 2022
d195e70
Fix PADle awakenings count (#1751)
kary5678 Jun 21, 2022
c654d21
Fix CRUD repo commit (#1752)
chasehult Jun 23, 2022
f0bba13
[PADle] replace built-in emojis with custom (#1753)
chasehult Jun 24, 2022
b6609e8
Add dungeons to PadMonitor (#1754)
chasehult Jun 24, 2022
5a2e536
Remove crosscog dbcog import (#1755)
RheingoldRiver Jun 24, 2022
8967402
Stop Caching Monster Database
chasehult Jun 25, 2022
74198b0
Add get_all_events to DatabaseContext
chasehult Jun 26, 2022
b76b457
Remove Cross-Cog import
chasehult Jun 29, 2022
9e0e4da
Update to Dev (#1709)
chasehult Jun 30, 2022
944ee4a
Remove PadSearch (#1760)
chasehult Jun 30, 2022
4d2e2bc
Fix feedback (#1761)
chasehult Jul 2, 2022
21dcfda
Remove pronunciation_ja from MonsterModel (#1762)
chasehult Jul 2, 2022
fd27b01
server isn't Optional[Server] (#1764)
chasehult Jul 4, 2022
66d43cf
Create TempCog (#1765)
chasehult Jul 7, 2022
bfc64f1
Add propagate command (#1766)
chasehult Jul 7, 2022
e036d4b
Comment out uvloop in requirements (#1771)
RheingoldRiver Jul 9, 2022
232e571
A couple README fixes (#1772)
RheingoldRiver Jul 9, 2022
cfc5da0
Add () and restrict near-matching in subqueries (#1775)
chasehult Jul 10, 2022
2c647d3
Add subheadings when there are subqueries in ^ids (#1778)
RheingoldRiver Jul 13, 2022
4738246
remove print (#1780)
RheingoldRiver Jul 13, 2022
0a39b66
Add board references to active skills (#1783)
chasehult Jul 20, 2022
edc1967
Add New Awakenings (#1788)
chasehult Jul 21, 2022
765a13e
Add grey bases for new latents, all 120s, dblcap (#1792)
ViciousSlayer Jul 21, 2022
06bb6a2
Add additional awakening nicknames (#1795)
RheingoldRiver Jul 23, 2022
2775590
Add lock image to show for unused 7/8 slots (#1796)
RheingoldRiver Jul 24, 2022
9f2cf21
Add get_subdungeons_from_drop_monster (#1793)
chasehult Jul 24, 2022
5f8002d
Create ^boardlink command (#1787)
Alianin Jul 26, 2022
220c228
[pdchu] add new awakenings (#1799)
ViciousSlayer Jul 26, 2022
b6b0528
[pdchu] fix dbcog load (#1800)
RheingoldRiver Jul 26, 2022
1161dd8
type during refreshassets (#1801)
RheingoldRiver Jul 26, 2022
1c605ed
initial commit or something
RheingoldRiver Jul 26, 2022
768523f
2 unusable slots for 6 slot cards (#1802)
ViciousSlayer Jul 27, 2022
2921c19
Rename `none` to `unavailable` (#1803)
RheingoldRiver Jul 27, 2022
8eb72ec
Change padevents to discord timestamp (#1807)
ethannp Jul 29, 2022
d56f856
[pdchu] Resize lock icon (#1806)
ViciousSlayer Jul 29, 2022
b613f61
Fix padevents output (#1808)
ethannp Jul 30, 2022
df63495
Remove groups from PDE (#1809)
chasehult Jul 31, 2022
7eaf4a1
Add jpdgname (#1810)
chasehult Aug 3, 2022
f81d022
Update adpem.py (#1812)
chasehult Aug 15, 2022
4780a05
Fix justification (#1814)
chasehult Aug 20, 2022
8ea0335
Fix justification on the other side of the dash
chasehult Aug 20, 2022
92c3276
Fix series search (#1815)
chasehult Aug 21, 2022
c528c7a
Add Ilmina to temp welcome (#1816)
chasehult Aug 22, 2022
83c421b
Allow ALId emoji to go past 11 (#1817)
chasehult Sep 10, 2022
69fa8c4
add pdx server to temp welcome (#1823)
dchang0413 Sep 26, 2022
6ad78f3
apicog (#1825)
ethanngoh Sep 27, 2022
32b3bdb
rename apicog to api
ethanngoh Sep 27, 2022
4113fcc
Change port to 8001
ethanngoh Sep 27, 2022
6a221bf
Some DBCog model typing
ethanngoh Sep 27, 2022
b8f4501
Model -> Response Type conversion
ethanngoh Sep 27, 2022
720102c
tsubaki cors
ethanngoh Sep 27, 2022
e0118fa
Add `BGM` modifier & show by rarity
aliceyzhou Oct 2, 2022
d8d82ba
Add BGM initializers to monster model (#1827)
aliceyzhou Oct 2, 2022
dcc077d
Edit friend code pattern (#1828)
ethannp Oct 2, 2022
7fd7d39
Add SkillDisplay query setting (#1831)
RheingoldRiver Oct 15, 2022
972e99a
Merge remote-tracking branch 'origin/master'
chasehult Oct 21, 2022
70dd7d1
Update requirements.txt (#1832)
chasehult Oct 21, 2022
4541c6c
Use legacy package python-Levenshtein-wheels (#1833)
chasehult Oct 21, 2022
e0b3d5c
Prettify GFE gem rush (#1834)
aliceyzhou Oct 22, 2022
fa8befc
Create ScoreListener cog (#1836)
ethannp Nov 8, 2022
3b59daa
Add story as subseries (#1837)
chasehult Nov 9, 2022
8f49f4d
Fix story as subseries (#1841)
chasehult Nov 10, 2022
47cc900
Make parentheses traverse servers as well as tree (#1840)
chasehult Nov 10, 2022
7728b33
Merge branch 'master' of https://github.com/TsubakiBotPad/pad-cogs
chasehult Nov 10, 2022
6a6da17
Check real dg name for AEP too (#1846)
chasehult Nov 13, 2022
4ca4bda
Add jpyt command & refactor dungeon lists (#1847)
RheingoldRiver Nov 15, 2022
80a78ff
Add help text to jpyoutube (#1849)
RheingoldRiver Nov 15, 2022
2dcef06
Fix whitespace & dashes in jpyt (#1850)
RheingoldRiver Nov 15, 2022
70b4e62
[jpyt] Escape dungeon names too (#1851)
RheingoldRiver Nov 15, 2022
bfeb7b7
Merge branch 'master' into droploc
RheingoldRiver Nov 15, 2022
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
12 changes: 12 additions & 0 deletions .github/FUNDING.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
# These are supported funding model platforms

github: # Replace with up to 4 GitHub Sponsors-enabled usernames e.g., [user1, user2]
patreon: tsubaki_bot
open_collective: # Replace with a single Open Collective username
ko_fi: # Replace with a single Ko-fi username
tidelift: # Replace with a single Tidelift platform-name/package-name e.g., npm/babel
community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry
liberapay: # Replace with a single Liberapay username
issuehunt: # Replace with a single IssueHunt username
otechie: # Replace with a single Otechie username
custom: []
4 changes: 4 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -136,3 +136,7 @@ bot_data/

# 3way Merge
.orig

.DS_Store
.vscode
__pycache__
21 changes: 21 additions & 0 deletions LICENSE
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
MIT License

Copyright (c) 2020 TsubakiBotPad

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
276 changes: 92 additions & 184 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,236 +1,144 @@
# miru-v3cogs
# pad-cogs

Red v3 Cogs developed for Miru Bot.
**Important: You must use Python 3.8 for the setup!!** If you use an earlier or later version, things WILL break. It's not just convenient to be on the same version as us, it's mandatory.

Code should be pep8 formatted with a 100 character line limit.
# Setting up your own Tsubaki instance

# Cog status
## Prerequisites / Tools

### Completed and tested
- Install Git
- Install Python 3.8
- Familiarize yourself with how to use a command prompt and Git Bash (if you can't do this you will have a bad time)

```
[Red's Installation Guide](https://docs.discord.red/en/stable/install_guides/index.html) is a useful resource if you're a first timer.

```
I suggest using [PyCharm Community](https://www.jetbrains.com/pycharm/download) for development. Change into the
`PycharmProjects` directory and clone your fork of the repo:

### First pass completed
## Check out the repo

```
automod2
azurelane
baduser
calculator
channelmod
chronomagia
dadguide
damagecalc
donations
fancysay
memes
modnotes
padboard
padbuilds
padevents
padglobal
padguidedb
padinfo
padmonitor
padrem
padsearch
padvision
profile
rpadutils
schoolidol
seniority
sqlactivitylog
stickers
streamcopy
timecog
translate
trutils
voicerole
```
Fork this repo (you are probably already on the page, but if not [go here](https://github.com/TsubakiBotPad/pad-cogs)).

```
# annoying
speech
```
> Note: If you are developing a cog that is in the [misc-cogs repo](https://github.com/TsubakiBotPad/misc-cogs), you may need to complete some steps for both pad-cogs AND misc-cogs.

You will need a GitHub account to do this. Click the button that says "Fork" in the upper-right-hand corner of the page.

Git clone your forked repository.

## Create a Discord Bot

If you don't have one already, follow the instructions to create a bot in Red's official documentation:

[Creating a bot account](https://docs.discord.red/en/stable/bot_application_guide.html#creating-a-bot-account)

# Setting up your own Miru instance for contributing code
Keep the bot `token` that you get from Discord at the end of the instructions handy - you will need it to set up the bot later.

## Installing Tools
## Installation

* Install Git (see the Red install link below if you need help doing this, or read any tutorial)
* Install Python 3.8 (see the Red install link below if you need help doing this, or read any tutorial)
* Familiarize yourself with how to use a command prompt and Git Bash (if you can't do this you will have a bad time)
1. Clone this repo (fork if you're contributing)
1. Create a python 3 venv. `virtualenv -p python3 <envname>`
1. Activate the venv.
1. `pip install -r requirements.txt`

The above steps install Red automatically. You can now follow the Red instructions to startup the bot:

## Check out the repo
[Setting Up and Running Red (macOS)](https://docs.discord.red/en/stable/install_guides/mac.html#setting-up-and-running-red)

Fork this repo (you are probably already on the page, but if not [go here](https://github.com/nachoapps/miru-v3cogs).
You will need a GitHub account to do this. Click the button that says "Fork" in the upper-right-hand corner of the page.
In command line:

I suggest using [PyCharm Community](https://www.jetbrains.com/pycharm/download) for development. Change into the
`PycharmProjects` directory and clone your fork of the repo:
- `redbot-setup`
- `redbot <bot_name>`

```shell script
# Clone your repo, not this one.
git clone https://github.com/nachoapps/miru-v3cogs.git
## Configure Your Bot

# If you're just setting up a production bot, no need to do this. But you should create a directory and do:
wget https://raw.githubusercontent.com/nachoapps/miru-v3cogs/master/requirements.txt
```
The rest of the guide takes place from inside Discord. Replace `^` with your prefix to talk to your bot.

## Set up a virtualenv
### Tell your bot where to find the code

One way to install python 3.8:
Once the bot is launched, set it to use your repo directory as a cog path. Type this in Discord where the bot is:

```shell script
sudo add-apt-repository ppa:deadsnakes/ppa
sudo apt update
sudo apt install python3.8
```

Then set up your 3.8 venv:

```shell script
# Get inside your cloned repo.
cd miru-v3cogs

# Set up the venv.
virtualenv --python=/usr/bin/python3.8 venv

# Atlernatively, install python3.8-venv (possibly python3.8-distutils) and do:
python3.8 -m venv venv

# Activate your venv
source venv/bin/activate

# Install python deps, including Red.
pip install -r requirements.txt
^addpath path/to/repo/root
```

## Set up Red Bot
e.g

```
# You will use the output from pwd in the next steps, so copy it
pwd

# Initial setup of bot
redbot-setup

# Use whatever you like below, this is my example
bot name> miru_bot_test
^addpath /Users/Tsubaki/src/pad-cogs
```

# Replace current_dir with output from pwd
data location> (current_dir)/bot_data
> Note: you may have to do this for `pad-cogs`, `core-cogs`, and `misc-cogs`. If you have forked and cloned core & misc cogs, this process is the same! However, if you are only developing in `pad-cogs`, and installing `core-cogs` & `misc-cogs` from remote repos then:
>
> 1. `^load downloader` (this cog is always installed by default)
> 2. `^repo install misc https://github.com/TsubakiBotPad/misc-cogs`
> 3. `^repo install core https://github.com/TsubakiBotPad/core-cogs`
> 4. Now you can install, for example, the `menulistener` cog with `^repo install core menulistener`. The `menulistener` cog is what makes the `^id` menus interactive instead of single-panel static screens with unusable emoji below them.

# Pick json for now
storage backend> 1
### Load cogs

# Now start the bot, replace the bot name below
redbot miru_bot_test
Load relevant cogs (whichever cogs you are developing, `dbcog`, and `padinfo`) using the `^load` command.

# Follow the directions to get your bot token
# If copying from a v2 bot, the token is in data/red/settings.json
bot token> MjQxdzM53TE3MAM2NzA3NTg2.Xc4VVA.RIcv2Ndkxb<truncated>
> Node: We suggest you load `dbcog` and `padinfo` so that you will have something to test that your bot installation correctly installed; however, if your development does not involve dbcog as a dependency, you may want to keep it unloaded (`^unload dbcog`, get it back with `^load dbcog` at any time), simply because it is very slow for the bot to initialize dbcog on startup, and you will be restarting your bot a lot during development.

# Pick whatever you want but consider not overlapping with miru which uses ^
prefix> !
```
Syntax: ^load <cog 1> ... <cog n>

Once the bot is launched, set it to use your repo directory as a cog path. Type this in Discord where the bot is:

```
!addpath (pwd output)
e.g
^load dbcog padinfo
```

You can see which cogs you have loaded using the `^cogs` command.

### Test a simple command

You should now be able to run basic commands like `^id`

```
^id tsubaki
```

Should return something like:

<img width="597" alt="image" src="https://user-images.githubusercontent.com/880610/173267597-3cbee890-8411-4ac4-b99e-200b273f63ec.png" />

Happy developing!

## Appendix

## TODOs

fork romkan and fix this so people don't keep having to do this

* For Romanji/Kana conversion you will use Romkan. This is a bit tricky to install so we'll go over it first.
* If you want to skip this, you can locally comment out all calls to it, but this might be annoying when syncing your code if you're editing files that import it, so you should probably just do it. But if figuring this out is a barrier to entry to start actually coding, feel free to skip at least at the start.
* git clone [this repo](https://github.com/soimort/python-romkan) into any folder you want.
* Open setup.py in the text editor or IDE of your choice. Make the following replacement (basically add `encoding='utf8'` in 3 places):
```python
here = os.path.abspath(os.path.dirname(__file__))
proj_info = json.loads(open(os.path.join(here, PROJ_METADATA), encoding='utf8').read())
README = open(os.path.join(here, 'README.rst'), encoding='utf8').read()
CHANGELOG = open(os.path.join(here, 'CHANGELOG.rst'), encoding='utf8').read()
VERSION = imp.load_source('version', os.path.join(here, 'src/%s/version.py' % PACKAGE_NAME)).__version__
```
* Open a command line in this same directory and run `py setup.py install`

## Setting up the bot

* Some cogs will have cross dependencies on each other. Check the command prompt that Miru is running from if you encounter any errors.
* Common dependencies include:
* rpadutils
* dadguide
* padinfo
* Note that when you edit cogs with dependencies, you might need to do multiple reloads. For example, if updating dadguide, you will need to reload padinfo as well.
* After you have done all of this, restart the bot again. Hopefully by now `^id ` should work!
### Debugging

## Other
- Use `^traceback 1` if you encounter any errors to display them in discord.

### Emoji
* If you want emojis in `^id` commands, and you are setting this up for DEV PURPOSES ONLY, you can talk to tactical_retreat about getting your bot invited to the emoji servers. If you want to make your own separate Miru instance though, you're on your own for that.
* Give t_r your bot's invite link & ask him for the server IDs
* Then use `^padinfo setemojiservers` with the IDs he gives you. The main Miru server is one of them, you can get that ID yourself.

# Puzzle and Dragons

Most cogs here relate to the mobile game 'Puzzle and Dragons'. Data is sourced from the
DadGuide mobile app.

| Cog | Purpose |
| --- | --- |
| damagecalc | Simple attack damage calculator |
| padboard | Converts board images to dawnglare board/solved board links |
| padglobal | Global PAD info commands |
| dadguide | Utility classes relating to DadGuide data |
| padinfo | Monster lookup and info display |
| padrem | Rare Egg Machine simulation |
| padvision | Utilities relating to PAD image scanning |
| profile | Global user PAD profile storage and lookup |


# Admin/util cogs

Cogs that make server administration easier, do miscellaneous useful things, or
contain utility libraries.

| Cog | Purpose |
| --- | --- |
| baduser | Tracks misbehaving users, other misc user tracking |
| calculator | Replacement for the calculator cog that doesnt suck |
| fancysay | Make the bot say special things |
| memes | CustomCommands except role-limited |
| rpadutils | Utility library shared by many other libraries |
| sqlactivitylog | Archives messages in sqlite, allows for lookup |
| timecog | Convert/print time in different timezones |
| trutils | Misc utilities intended for my usage only |
| twitter2 | Mirrors a twitter feed to a channel |


# Other/deprecated cogs

Cogs not intended for normal use, or superceded.

| Cog | Purpose |
| --- | --- |
| donations | Tracks users who have donated for hosting fees |

You may have noticed that emojis are replaced with placeholders in some commands. This is because the bot does not have access to the specific emojis.

- If you are doing in-depth development of the `^id` command, your bot will need to be invited to the emoji servers. Talk to River to get access to these servers.

- Once you and your bot have joined the servers, use `^padinfo emojiserver add <server_id_1> ... <server_id_n> ` with the IDs she gives you.

### Cog list

Most cogs here relate to the mobile game 'Puzzle & Dragons'.

| Cog | Purpose |
| ------------- | --------------------------------------------------------------- |
| azurlane | Azur Lane card lookup |
| crowddata | Crowdsourced data collection |
| crud | Database editor. Not useful for bots other than prod Tsubaki |
| dbcog | Central cog to host all PAD data |
| dungeoncog | A cog to search and get info for dungeons |
| damagecalc | Simple attack damage calculator |
| feedback | A specialized feedback cog for Tsubaki specifically |
| monidlistener | A listener to give info for monster ids |
| padboard | Converts board images to dawnglare board/solved board links |
| padbuildimg | Creates images of PAD teams via a special query language |
| padbuilds | See user-made builds for dungeons i think??? (nobody uses this) |
| padevents | A scheduler cog to help players see upcoming daily GH dungeons. |
| padglobal | Global PAD info commands |
| padle | A wordle-inspired monster guessing game |
| padinfo | Monster lookup and info display |
| padmonitor | Keeps an eye out for PAD updates |
| pipelineui | Interface for running the pipeline (Tsubaki-only) |
| pricecheck | Lumon's thing. Something about stamina trade equivalence |
| profile | Global user PAD profile storage and lookup |
Empty file added __init__.py
Empty file.
13 changes: 13 additions & 0 deletions api/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
import json
from pathlib import Path

from api.apicog import APICog

with open(Path(__file__).parent / "info.json") as file:
__red_end_user_data_statement__ = json.load(file)['end_user_data_statement']


async def setup(bot):
n = APICog(bot)
bot.add_cog(n) if not __import__('asyncio').iscoroutinefunction(bot.add_cog) else await bot.add_cog(n)
n.bot.loop.create_task(n.entrypoint())
Loading