fix // and other logic flaws
This commit is contained in:
@@ -15,6 +15,7 @@ from admin_links import cmd_rename
|
||||
from admin_links import cmd_unban
|
||||
from admin_links import cmd_validate_import
|
||||
from admin_links import cmd_fix_revision
|
||||
from admin_links import cmd_fix_x_media
|
||||
from admin_users import cmd_user_rename
|
||||
from admin_users import cmd_users
|
||||
|
||||
@@ -80,6 +81,9 @@ def build_parser() -> argparse.ArgumentParser:
|
||||
p_fix_rev = sub.add_parser("fix-revision")
|
||||
p_fix_rev.set_defaults(func=cmd_fix_revision)
|
||||
|
||||
p_fix_media = sub.add_parser("fix-x-media")
|
||||
p_fix_media.set_defaults(func=cmd_fix_x_media)
|
||||
|
||||
p_user_rename = sub.add_parser("user-rename")
|
||||
p_user_rename.add_argument("user")
|
||||
p_user_rename.add_argument("site")
|
||||
|
||||
@@ -218,6 +218,28 @@ def cmd_fix_revision(_: argparse.Namespace) -> None:
|
||||
print("ok")
|
||||
|
||||
|
||||
def cmd_fix_x_media(_: argparse.Namespace) -> None:
|
||||
with db.connect() as conn:
|
||||
rows = conn.execute(
|
||||
"""
|
||||
SELECT id, url_original FROM links
|
||||
WHERE url_original LIKE '%x.com/%//media%'
|
||||
"""
|
||||
).fetchall()
|
||||
for row in rows:
|
||||
fixed = row["url_original"].replace("//media", "/media")
|
||||
conn.execute(
|
||||
"""
|
||||
UPDATE links
|
||||
SET url_original = ?, url_normalized = ?, updated_at = CURRENT_TIMESTAMP
|
||||
WHERE id = ?
|
||||
""",
|
||||
(fixed, db.normalize_url(fixed), row["id"]),
|
||||
)
|
||||
conn.commit()
|
||||
print("ok")
|
||||
|
||||
|
||||
def _fzf_select(lines: list[str], multi: bool) -> list[str]:
|
||||
if not lines:
|
||||
return []
|
||||
|
||||
@@ -32,7 +32,7 @@ def validate_x_link(line: str) -> str:
|
||||
if re.search(r"\/media$", line):
|
||||
return line
|
||||
# if does not contain /media at the end then add /media
|
||||
return f"{line}/media"
|
||||
return f"{line.rstrip('/')}/media"
|
||||
|
||||
|
||||
def parse_link(link: str) -> str:
|
||||
|
||||
Reference in New Issue
Block a user