komga/fix_referential_dao.py
duong.doan1 ee45e4f0fb feat: Continue PostgreSQL support migration
- Update ReferentialDao to use JooqUdfHelper
- Update SeriesSearchHelper and BookSearchHelper to take JooqUdfHelper parameter
- Update SeriesDtoDao and BookDtoDao to pass JooqUdfHelper to helper classes
- Fix compilation errors in helper classes

Note: Migration is incomplete. Several DAO classes still need JooqUdfHelper injection:
- SeriesDtoDao needs jooqUdfHelper in constructor
- ReadListDao needs jooqUdfHelper injection
- SeriesCollectionDao needs jooqUdfHelper injection
- BookDtoDao sorts map still uses SqliteUdfDataSource
2026-04-07 12:01:35 +07:00

42 lines
1.3 KiB
Python

#!/usr/bin/env python3
import re
def fix_referential_dao():
file_path = "/Users/duong/Documents/GitHub/komga/komga/src/main/kotlin/org/gotson/komga/infrastructure/jooq/main/ReferentialDao.kt"
with open(file_path, "r") as f:
content = f.read()
# Fix udfStripAccents() calls
# Pattern: field.udfStripAccents() -> jooqUdfHelper.run { field.udfStripAccents() }
# But need to be careful not to match already fixed ones
pattern1 = r"(\w+\.\w+\.udfStripAccents\(\))"
def replace_udf(match):
field_expr = match.group(1)
return f"jooqUdfHelper.run {{ {field_expr} }}"
# First pass: fix udfStripAccents
content = re.sub(pattern1, replace_udf, content)
# Fix collate(SqliteUdfDataSource.COLLATION_UNICODE_3) calls
# Pattern: field.collate(SqliteUdfDataSource.COLLATION_UNICODE_3) -> jooqUdfHelper.run { field.collateUnicode3() }
pattern2 = r"(\w+\.\w+)\.collate\(SqliteUdfDataSource\.COLLATION_UNICODE_3\)"
def replace_collate(match):
field_expr = match.group(1)
return f"jooqUdfHelper.run {{ {field_expr}.collateUnicode3() }}"
# Second pass: fix collate
content = re.sub(pattern2, replace_collate, content)
# Write back
with open(file_path, "w") as f:
f.write(content)
print(f"Fixed {file_path}")
if __name__ == "__main__":
fix_referential_dao()