| @@ -21,7 +21,6 @@ from .cache import cache | |||||
| from .misc import get_sql_error, sql_dialect | from .misc import get_sql_error, sql_dialect | ||||
| from .query import APIQuery, CheckQuery | from .query import APIQuery, CheckQuery | ||||
| from .sites import get_site | from .sites import get_site | ||||
| from .turnitin import search_turnitin | |||||
| T_POSSIBLE = 0.4 | T_POSSIBLE = 0.4 | ||||
| T_SUSPECT = 0.75 | T_SUSPECT = 0.75 | ||||
| @@ -91,14 +90,15 @@ def _get_results( | |||||
| query.action = "compare" if query.url else "search" | query.action = "compare" if query.url else "search" | ||||
| if query.action == "search": | if query.action == "search": | ||||
| if not query.use_engine and not query.use_links and not query.turnitin: | |||||
| if not query.use_engine and not query.use_links: | |||||
| raise CopyvioCheckError(ErrorCode.NO_SEARCH_METHOD) | raise CopyvioCheckError(ErrorCode.NO_SEARCH_METHOD) | ||||
| # Handle the Turnitin check | # Handle the Turnitin check | ||||
| turnitin_result = None | turnitin_result = None | ||||
| if query.turnitin: | |||||
| assert query.lang | |||||
| turnitin_result = search_turnitin(page.title, query.lang) | |||||
| # 2026-06-07: Disabled, API doesn't work | |||||
| # if query.turnitin: | |||||
| # assert query.lang | |||||
| # turnitin_result = search_turnitin(page.title, query.lang) | |||||
| # Handle the copyvio check | # Handle the copyvio check | ||||
| conn = cache.engine.raw_connection() | conn = cache.engine.raw_connection() | ||||
| @@ -13,7 +13,7 @@ | |||||
| {% if error.code == ErrorCode.BAD_ACTION %} | {% if error.code == ErrorCode.BAD_ACTION %} | ||||
| Unknown action: <b><span class="mono">{{ query.action | e }}</span></b>. | Unknown action: <b><span class="mono">{{ query.action | e }}</span></b>. | ||||
| {% elif error.code == ErrorCode.NO_SEARCH_METHOD %} | {% elif error.code == ErrorCode.NO_SEARCH_METHOD %} | ||||
| No copyvio search methods were selected. A check can only be made using the search engine, links present in the page, Turnitin, or some combination of these. | |||||
| No copyvio search methods were selected. A check can only be made using the search engine, links present in the page, or some combination of these. | |||||
| {% elif error.code == ErrorCode.BAD_OLDID %} | {% elif error.code == ErrorCode.BAD_OLDID %} | ||||
| The revision ID <code>{{ query.oldid | e }}</code> is invalid. It should be an integer. | The revision ID <code>{{ query.oldid | e }}</code> is invalid. It should be an integer. | ||||
| {% elif error.code == ErrorCode.NO_URL %} | {% elif error.code == ErrorCode.NO_URL %} | ||||
| @@ -70,6 +70,7 @@ | |||||
| <label for="cv-cb-links" class="oo-ui-widget oo-ui-widget-enabled oo-ui-labelElement-label oo-ui-labelElement oo-ui-labelWidget">Use links in page</label> | <label for="cv-cb-links" class="oo-ui-widget oo-ui-widget-enabled oo-ui-labelElement-label oo-ui-labelElement oo-ui-labelWidget">Use links in page</label> | ||||
| </span> | </span> | ||||
| <!-- 2026-06-07: Turnitin disabled, API does not work | |||||
| <input type="hidden" name="turnitin" value="0"> | <input type="hidden" name="turnitin" value="0"> | ||||
| <span class="oo-ui-widget oo-ui-widget-enabled"> | <span class="oo-ui-widget oo-ui-widget-enabled"> | ||||
| <span class="cv-search-oo-ui oo-ui-widget oo-ui-widget-enabled oo-ui-inputWidget oo-ui-checkboxInputWidget"> | <span class="cv-search-oo-ui oo-ui-widget oo-ui-widget-enabled oo-ui-inputWidget oo-ui-checkboxInputWidget"> | ||||
| @@ -78,6 +79,7 @@ | |||||
| </span> | </span> | ||||
| <label for="cv-cb-turnitin" class="oo-ui-widget oo-ui-widget-enabled oo-ui-labelElement-label oo-ui-labelElement oo-ui-labelWidget">Use Turnitin</label> | <label for="cv-cb-turnitin" class="oo-ui-widget oo-ui-widget-enabled oo-ui-labelElement-label oo-ui-labelElement oo-ui-labelWidget">Use Turnitin</label> | ||||
| </span> | </span> | ||||
| --> | |||||
| </div> | </div> | ||||
| <div class="oo-ui-layout oo-ui-horizontalLayout"> | <div class="oo-ui-layout oo-ui-horizontalLayout"> | ||||
| <span class="oo-ui-widget oo-ui-widget-enabled"> | <span class="oo-ui-widget oo-ui-widget-enabled"> | ||||
| @@ -33,7 +33,7 @@ def _make_api_request(page_title: str, lang: str) -> list[dict]: | |||||
| "report": 1, | "report": 1, | ||||
| } | } | ||||
| result = requests.get(TURNITIN_API_ENDPOINT, params=api_parameters, verify=False) | |||||
| result = requests.get(TURNITIN_API_ENDPOINT, params=api_parameters) | |||||
| # use literal_eval to *safely* parse the resulting dict-containing string | # use literal_eval to *safely* parse the resulting dict-containing string | ||||
| try: | try: | ||||
| parsed_api_result = ast.literal_eval(result.text) | parsed_api_result = ast.literal_eval(result.text) | ||||