mirror of https://github.com/coddrago/Heroku
69 lines
2.5 KiB
Python
69 lines
2.5 KiB
Python
# ©️ Dan Gazizullin, 2021-2023
|
|
# This file is a part of Hikka Userbot
|
|
# 🌐 https://github.com/hikariatama/Hikka
|
|
# You can redistribute it and/or modify it under the terms of the GNU AGPLv3
|
|
# 🔑 https://www.gnu.org/licenses/agpl-3.0.html
|
|
|
|
# ©️ Codrago, 2024-2025
|
|
# This file is a part of Heroku Userbot
|
|
# 🌐 https://github.com/coddrago/Heroku
|
|
# You can redistribute it and/or modify it under the terms of the GNU AGPLv3
|
|
# 🔑 https://www.gnu.org/licenses/agpl-3.0.html
|
|
|
|
import re
|
|
|
|
|
|
def compat(code: str) -> str:
|
|
"""
|
|
Reformats modules, built for GeekTG to work with Heroku
|
|
:param code: code to reformat
|
|
:return: reformatted code
|
|
:rtype: str
|
|
:example:
|
|
```python
|
|
code = '''
|
|
from ..inline import GeekInlineQuery, rand
|
|
from ..inline import rand, InlineQueryResultArticle
|
|
from ..inline import InlineQueryResultArticle, rand
|
|
from ..inline import rand, InlineQueryResultArticle, InputTextMessageContent
|
|
'''
|
|
print(compat(code))
|
|
```
|
|
"""
|
|
return "\n".join(
|
|
[
|
|
re.sub(
|
|
r"^( *)from \.\.inline import (.+)$",
|
|
r"\1from ..inline.types import \2",
|
|
re.sub(
|
|
r"^( *)from \.\.inline import rand[^,]*$",
|
|
r"\1from ..utils import rand",
|
|
re.sub(
|
|
r"^( *)from \.\.inline import rand, ?(.+)$",
|
|
r"\1from ..inline.types import \2\n\1from ..utils import rand",
|
|
re.sub(
|
|
r"^( *)from \.\.inline import (.+), ?rand[^,]*$",
|
|
r"\1from ..inline.types import \2\n\1from ..utils import"
|
|
r" rand",
|
|
re.sub(
|
|
r"^( *)from \.\.inline import (.+), ?rand, ?(.+)$",
|
|
r"\1from ..inline.types import \2, \3\n\1from ..utils"
|
|
r" import rand",
|
|
line.replace("GeekInlineQuery", "InlineQuery").replace(
|
|
"self.inline._bot",
|
|
"self.inline.bot",
|
|
),
|
|
flags=re.M,
|
|
),
|
|
flags=re.M,
|
|
),
|
|
flags=re.M,
|
|
),
|
|
flags=re.M,
|
|
),
|
|
flags=re.M,
|
|
)
|
|
for line in code.splitlines()
|
|
]
|
|
)
|