From 1051537c58e0a7c9712e9bcb0f94caf87f90d393 Mon Sep 17 00:00:00 2001
From: Ben Kurtovic {{ message('error-description', issues_url='https://github.com/earwig/copyvios/issues', new_issue_url='https://github.com/earwig/copyvios/issues/new', email_url='mailto:wikipedia.earwig@gmail.com') }} {{ message('error-description', url_issues='https://github.com/earwig/copyvios/issues', url_new_issue='https://github.com/earwig/copyvios/issues/new', url_email='mailto:wikipedia.earwig@gmail.com') }}$1.",
"error-no-search-method": "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.",
"error-invalid-oldid": "The revision ID $1 is invalid. It should be an integer.",
"error-no-url": "Compare mode requires a URL to be entered. Enter one in the text box below, or choose copyvio search mode to look for content similar to the article elsewhere on the web.",
- "error-unsupported-uri": "Unsupported URI scheme: $1.",
- "error-no-data": "Couldn't find any text in $1. Note: only HTML documents, plain text pages, and PDFs are supported, and content generated by JavaScript or found inside iframes is ignored.",
- "error-timeout": "The URL $1 timed out before any data could be retrieved.",
- "error-search-error": "An error occurred while using the search engine ($1). Note: there is a daily limit on the number of search queries the tool is allowed to make. You may $2.",
+ "error-unsupported-uri": "Unsupported URI scheme: [$1 $2].",
+ "error-no-data": "Couldn't find any text in [$1 $2]. Note: only HTML documents, plain text pages, and PDFs are supported, and content generated by JavaScript or found inside iframes is ignored.",
+ "error-timeout": "The URL [$1 $2] timed out before any data could be retrieved.",
+ "error-search-error": "An error occurred while using the search engine ($1). Note: there is a daily limit on the number of search queries the tool is allowed to make. You may [$2 repeat the check without using the search engine].",
"error-unknown": "An unknown error occurred.",
- "error-bad-site": "The given site (project=$1, language=$2) doesn't seem to exist. It may also be closed or private. $3",
- "error-revision-not-found": "The revision ID couldn't be found: $1.",
- "error-page-not-found": "The page couldn't be found: $1.",
- "intro-paragraph-1": "This tool attempts to detect $1 in articles. In search mode, it will check for similar content elsewhere on the web using Google, external links present in the text of the page, or Turnitin (via EranBot), depending on which options are selected. In compare mode, the tool will compare the article to a specific webpage without making additional searches, like the Duplication Detector.",
+ "error-bad-site": "The given site (project=$1, language=$2) doesn't seem to exist. It may also be closed or private. [$3 Confirm its URL.]",
+ "error-revision-not-found": "The revision ID couldn't be found: [$1 $2].",
+ "error-page-not-found": "The page couldn't be found: [$1 $2].",
+ "intro-paragraph-1": "This tool attempts to detect [$1 copyright violations] in articles. In search mode, it will check for similar content elsewhere on the web using Google or external links present in the text of the page, depending on which options are selected. In compare mode, the tool will compare the article to a specific webpage without making additional searches, like the [$2 Duplication Detector].",
"intro-paragraph-1-copyvio-url": "https://en.wikipedia.org/wiki/WP:COPYVIO",
- "intro-copyright-violations": "copyright violations",
"intro-paragraph-2": "Running a full check can take up to a minute if other websites are slow or if the tool is under heavy use. Please be patient. If you get a timeout, wait a moment and refresh the page.",
- "intro-paragraph-3": "Be aware that other websites can copy from Wikipedia, so check the results carefully, especially for older or well-developed articles. Specific websites can be skipped by adding them to the $1.",
- "intro-exclusions-list": "excluded URL list",
+ "intro-paragraph-3": "Be aware that other websites can copy from Wikipedia, so check the results carefully, especially for older or well-developed articles. Specific websites can be skipped by adding them to the [$1 excluded URL list].",
"cached-line": "Results cached from $2. Originally generated in $3 seconds.",
"cached-line-search": "Results cached from $2. Originally generated in $3 seconds using {{PLURAL:$4|$4 query|$4 queries}}.",
"cached-tooltip": "To save time (and money), this tool will retain the results of checks for up to 72 hours. This includes the URLs of the checked sources, but neither their content nor the content of the article. Future checks on the same page (assuming it remains unchanged) will not involve additional search queries, but a fresh comparison against the source URL will be made. If the page is modified, a new check will be run.",
@@ -89,14 +85,12 @@
"no-violation": "No violation",
"similarity": "similarity",
"no-matches-found": "No matches found.",
- "redirected-from": "Redirected from $1. $2.",
- "redirected-from-check-original": "Check original.",
- "attribution-warning": "This article contains an attribution template: {{$1}}. Please verify that any potential copyvios are not from properly attributed sources.",
+ "redirected-from": "Redirected from [$1 $2]. [$3 Check original].",
+ "attribution-warning": "This article contains an attribution template: {{[$1 $2]}}. Please verify that any potential copyvios are not from properly attributed sources.",
"turnitin-results": "Turnitin Results",
"turnitin-no-matches": "No matching sources found.",
- "turnitin-report": "Report $1",
- "turnitin-report-link": "Report $1 for text added at $2:",
- "turnitin-source": "$1% of revision text ($2 words) found at $3",
+ "turnitin-report": "[$1 Report $2] for text added at [$3 $4]:",
+ "turnitin-source": "$1% of revision text ($2 words) found at [$3 $4]",
"checked-sources": "Checked Sources",
"table-url": "URL",
"table-similarity": "Similarity",
@@ -106,8 +100,7 @@
"no-sources-checked": "No sources checked.",
"urls-hidden": "{{PLURAL:$1|$1 URL with lower similarity hidden.|$1 URLs with lower similarity hidden.}}",
"urls-hidden-show": "Show them.",
- "search-ended-early": "The search ended early because a match was found with high similarity. $1",
- "search-ended-early-retry": "Do a complete check.",
+ "search-ended-early": "The search ended early because a match was found with high similarity. [$1 Do a complete check.]",
"article-label": "Article:",
"source-label": "Source:",
"compare-action": "Compare",
diff --git a/i18n/qqq.json b/i18n/qqq.json
index 3080bba..f2102b5 100644
--- a/i18n/qqq.json
+++ b/i18n/qqq.json
@@ -5,11 +5,11 @@
]
},
"site-title": "Title of the tool shown in the browser tab",
- "site-header-title": "Header title of the tool, shown at the top of every page. \"Earwig's\" is the author's username. \"Copyvio Detector\" should be bolded.",
+ "site-header-title": "Header title of the tool, shown at the top of every page. \"Earwig's\" is the tool maintainer's username. \"Copyvio Detector\" should be bolded.",
"log-in": "Label for the login link in the header",
"log-out": "Title attribute for the logout link in the header",
"settings": "Label for the settings link in the header",
- "maintained-by": "Footer text with a link to the author's user page. $1 is the complete HTML link to the author's user page.",
+ "maintained-by": "Footer text with a link to the tool maintainer's user page. $1 is the URL of the maintainer's user page.",
"api": "Link to the API documentation page",
"source-code": "Link to the source code repository",
"background-image": "Link to the background image description page",
@@ -30,8 +30,6 @@
"logout-button": "Label for the logout button",
"error-heading": "Heading for the error page",
"error-description": "Instructions for the user when an unexpected error occurs. Contains links to GitHub issues and email. $1 is the GitHub issues list URL, $2 is the new issue URL, $3 is the author's email URL.",
- "error-bad-site-confirm": "Link text for confirming a wiki site's URL.",
- "search-error-retry": "Link text for retrying a search without the search engine.",
"settings-heading": "Heading for the settings page",
"settings-description": "Explanation of the settings page",
"settings-default-site": "Section heading for default wiki site selection",
@@ -63,20 +61,18 @@
"error-no-search-method": "Error shown when neither search engine nor page links are selected for checking",
"error-invalid-oldid": "Error shown when the revision ID is not a valid integer. $1 is the invalid ID.",
"error-no-url": "Error shown when no URL is provided for compare mode",
- "error-unsupported-uri": "Error shown when the URL has an unsupported URI scheme. $1 is the URL.",
- "error-no-data": "Error shown when no text could be extracted from a URL. $1 is the URL.",
- "error-timeout": "Error shown when a URL times out. $1 is the URL.",
+ "error-unsupported-uri": "Error shown when the URL has an unsupported URI scheme. $1 is the URL. $2 is the URL title.",
+ "error-no-data": "Error shown when no text could be extracted from a URL. $1 is the URL. $2 is the URL title.",
+ "error-timeout": "Error shown when a URL times out. $1 is the URL. $2 is the URL title.",
"error-search-error": "Error shown when the search engine fails. $1 is the error cause. $2 is a URL to retry without search engine.",
"error-unknown": "Fallback error message for unrecognized error codes",
"error-bad-site": "Error shown when the wiki site does not exist. $1 is the project code, $2 is the language code, $3 is a URL to confirm.",
"error-revision-not-found": "Error shown when the revision ID is not found. $1 is the URL, $2 is the revision ID.",
"error-page-not-found": "Error shown when the page is not found. $1 is the URL, $2 is the page title.",
- "intro-paragraph-1": "First introductory paragraph explaining what the tool does (search mode vs compare mode). $1 is a link to the copyright violations page. Contains several hardcoded links: Google, Turnitin, EranBot, Duplication Detector.",
+ "intro-paragraph-1": "First introductory paragraph explaining what the tool does (search mode vs compare mode). $1 is the URL of the copyright violations page (intro-paragraph-1-copyvio-url). $2 is the URL of the Duplication Detector tool.",
"intro-paragraph-1-copyvio-url": "URL of the copyright violations page on the local Wikipedia.",
- "intro-copyright-violations": "Link text for the copyright violations page (WP:COPYVIO).",
"intro-paragraph-2": "Second introductory paragraph about performance and timeouts",
- "intro-paragraph-3": "Third introductory paragraph explaining caution with results and the excluded URL list. $1 is a link to the excluded URL list page.",
- "intro-exclusions-list": "Link text for the excluded URL list page.",
+ "intro-paragraph-3": "Third introductory paragraph explaining caution with results and the excluded URL list. $1 is the URL of the excluded URL list page.",
"cached-line": "Cached results sentence (compare mode). $1 is the tooltip text for the around 'cached'. $2 is a complete '' with the time difference (e.g. '1 hour ago'). $3 is the generation time in seconds.",
"cached-line-search": "Cached results sentence (search mode). $1 is the tooltip text for the around 'cached'. $2 is a complete '' with the time difference (e.g. '1 hour ago'). $3 is the generation time. $4 is the search query count (PLURAL).",
"cached-tooltip": "Tooltip text for the 'cached' element in the cached results sentence.",
@@ -89,14 +85,12 @@
"no-violation": "Label indicating no copyright violation was found",
"similarity": "Label below the similarity percentage score",
"no-matches-found": "Text shown when no matching sources were found",
- "redirected-from": "Notice that the page was redirected from another title. $1 is the redirect page URL, $2 is the original title, $3 is the URL to check the original.",
- "redirected-from-check-original": "Link text for checking the original (non-redirected) page.",
+ "redirected-from": "Notice that the page was redirected from another title. $1 is the original page's URL, $2 is the original page's title, $3 is the URL to check the original.",
"attribution-warning": "Warning when the article contains an attribution template. $1 is the URL to the template, $2 is the template name.",
"turnitin-results": "Section heading for Turnitin results",
"turnitin-no-matches": "Text shown when Turnitin found no matching sources",
- "turnitin-report": "Label for a Turnitin report link. $1 is the report ID.",
- "turnitin-report-link": "Turnitin report link with timestamp. $1 is the report ID, $2 is the diff URL, $3 is the timestamp string.",
- "turnitin-source": "Turnitin source match description. $1 is the percentage, $2 is the word count, $3 is the source URL.",
+ "turnitin-report": "Turnitin report link with timestamp. $1 is the report URL, $2 is the report ID, $3 is the diff URL, $4 is the timestamp string.",
+ "turnitin-source": "Turnitin source match description. $1 is the percentage, $2 is the word count, $3 is the source URL, $4 is the URL title.",
"checked-sources": "Section heading for the list of checked sources",
"table-url": "Column header for the URL column in the sources table",
"table-similarity": "Column header for the similarity column in the sources table",
@@ -107,7 +101,6 @@
"urls-hidden": "Notice that some URLs are hidden. $1 is the count of hidden URLs. Followed by a separate 'Show them.' link.",
"urls-hidden-show": "Link text to reveal hidden URLs.",
"search-ended-early": "Notice that the search ended early due to a high-similarity match. $1 is a URL to re-run with a complete check.",
- "search-ended-early-retry": "Link text for re-running with a complete check after the search ended early.",
"article-label": "Label for the article text in the comparison view",
"source-label": "Label for the source text in the comparison view",
"compare-action": "Link text to compare a specific source URL",
diff --git a/src/copyvios/settings.py b/src/copyvios/settings.py
index c5548fa..6b4c4af 100644
--- a/src/copyvios/settings.py
+++ b/src/copyvios/settings.py
@@ -52,7 +52,7 @@ def _do_delete(query: SettingsQuery) -> str | None:
cookie = query.cookie
if cookie and cookie in cookies:
delete_cookie(cookie)
- return f'Deleted cookie {markupsafe.escape(cookie)}.'
+ return f"Deleted cookie {markupsafe.escape(cookie)}."
elif query.all:
number = len(cookies)
for cookie in list(cookies.values()):
diff --git a/src/copyvios/static/css/style.css b/src/copyvios/static/css/style.css
index c13b508..f4d0dc5 100644
--- a/src/copyvios/static/css/style.css
+++ b/src/copyvios/static/css/style.css
@@ -376,7 +376,6 @@ h2 {
background: linear-gradient(to right, #faa, #fff);
}
-.mono { font-family: monospace; }
.light { color: #ccc; }
.medium { color: #aaa; }
diff --git a/src/copyvios/static/style.min.css b/src/copyvios/static/style.min.css
index 1201954..d3ead43 100644
--- a/src/copyvios/static/style.min.css
+++ b/src/copyvios/static/style.min.css
@@ -1 +1 @@
-body,html{height:100%;margin:0}body{background-attachment:fixed;background-color:#eaecf0;background-position:50%;background-size:cover;color:#000;display:flex;flex-direction:column;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Helvetica,Arial,sans-serif,Apple Color Emoji,Segoe UI Emoji;font-size:14px}#container{flex:auto;line-height:1.25;margin:0 auto}#container.splash{display:flex;flex-direction:column;justify-content:center}@media only screen and (min-width:1200px){#container.splash{max-width:1600px;min-width:1200px}}@media only screen and (max-width:1200px){#container.splash{width:100%}}#container.splash>.padding{height:25%}#content{background-color:#fff;border:1px solid #c8ccd1;filter:drop-shadow(0 0 10px rgba(0,0,0,.25));margin:1.5em 3em;padding:1em}@media only screen and (max-width:1000px){#content{margin:1em}}@media only screen and (max-width:400px){#content{margin:0}}header{background-color:#eaecf0;padding:.2em 1em}header>*{display:inline-block;vertical-align:middle}header h1{font-size:2.25em;font-weight:400;margin:0 1em 0 0}@media only screen and (max-width:500px){header h1{font-size:1.5em}}header .login-link,header .logout-link{margin-right:1em}header .login-link:before,header .logout-link:before{background-image:linear-gradient(transparent,transparent),url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 20 20'%3E%3Ctitle%3Euser avatar%3C/title%3E%3Cpath d='M10 11c-5.92 0-8 3-8 5v3h16v-3c0-2-2.08-5-8-5'/%3E%3Ccircle cx='10' cy='5.5' r='4.5'/%3E%3C/svg%3E")}#settings-link:before,header .login-link:before,header .logout-link:before{background-repeat:no-repeat;background-size:contain;color:#000;content:" ";font-size:.85em;opacity:.6;padding-left:1.67em}#settings-link:before{background-image:linear-gradient(transparent,transparent),url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' width='20' height='20' viewBox='0 0 20 20'%3E%3Ctitle%3Esettings%3C/title%3E%3Cg transform='translate(10 10)'%3E%3Cpath id='a' d='M1.5-10h-3l-1 6.5h5m0 7h-5l1 6.5h3'/%3E%3Cuse xlink:href='%23a' transform='rotate(45)'/%3E%3Cuse xlink:href='%23a' transform='rotate(90)'/%3E%3Cuse xlink:href='%23a' transform='rotate(135)'/%3E%3C/g%3E%3Cpath d='M10 2.5a7.5 7.5 0 0 0 0 15 7.5 7.5 0 0 0 0-15v4a3.5 3.5 0 0 1 0 7 3.5 3.5 0 0 1 0-7'/%3E%3C/svg%3E")}footer{background:#fff;border-top:1px solid #c8ccd1;font-size:.9em;line-height:1.5;padding:1em;text-align:center}footer ul{margin:0}footer li{display:inline}footer li:not(:last-child):after{content:" \00b7"}footer a{white-space:nowrap}ol,ul{line-height:1.5}h2{margin-bottom:.2em}#info-box,#notice-box{margin:1em 0;padding:0 1em}#notice-box ul{margin:0;padding-left:1.5em}#cv-result{margin:1em 0;padding:.5em}#attribution-warning{margin:1em 0;padding:1em}#sources-container,#turnitin-container{margin:1em 0;padding:.5em 1em 1em}#sources-container{background-color:#eee;border:1px solid #bbb}#sources-title,#turnitin-title{font-weight:700;margin-bottom:-.5em;text-align:center}#cv-additional{display:none}#generation-time{font-style:italic;text-align:right}@media only screen and (min-width:600px){#generation-time{margin-top:-1em}}#heading{width:100%}#cv-result-sources{border-spacing:0 .4em;table-layout:fixed;width:100%}#cv-result-sources col:first-child{width:80%}#cv-result-sources col:nth-child(2),#cv-result-sources col:nth-child(3){width:10%}#cv-result-sources th{text-align:left}#cv-result-sources tr:nth-child(2n){background-color:#e0e0e0}#cv-result-sources td:first-child{overflow:hidden;word-wrap:break-word}#cv-result-head-table{border-spacing:0;table-layout:fixed;text-align:center;width:100%}#cv-result-head-table col:nth-child(odd){width:42.5%}#cv-result-head-table col:nth-child(2){width:15%}#cv-result-head-table td:nth-child(odd){font-size:1.25em;font-weight:700;overflow:hidden;word-wrap:break-word}#cv-result-head-table td:nth-child(2) div:first-child{font-weight:700;white-space:nowrap}#cv-result-head-table td:nth-child(2) div:nth-child(2){font-size:2.5em;font-weight:700;line-height:1}#cv-result-head-table td:nth-child(2) div:nth-child(3){font-size:.8em}#cv-chain-table,#turnitin-table{border-spacing:0;table-layout:fixed;width:100%}#turnitin-table{word-wrap:break-word}#source-row-selected{background-color:#cfcfcf!important}#head-settings{text-align:right}#cv-result-header{margin:0}#redirected-from{font-size:.75em;font-weight:400}#redirected-from,#result-head-no-sources{font-style:italic}#source-selected{font-weight:700}.green-box{background-color:#efe;border:1px solid #7f7}.yellow-box{background-color:#ffd;border:1px solid #ee5}.red-box{background-color:#fee;border:1px solid #f77}.gray-box{background-color:#eee;border:1px solid #aaa}.indentable{white-space:pre-wrap}.cv-source-footer{font-style:italic;padding-bottom:.5em}.cv-source-footer a{font-style:normal}.cv-chain-detail{background-color:#fff;border:1px solid #bbb;padding:0 1em}.cv-chain-cell{vertical-align:top;word-wrap:break-word}.cv-chain-cell:first-child{padding-right:.5em}.cv-chain-cell:last-child{padding-left:.5em}.turnitin-table-cell{padding:.5em 0 .3em}.turnitin-table-cell ul{line-height:1.4;margin:.2em 0 0}.cv-hl{background:#faa}.cv-hl-in{background:#fcc;background:linear-gradient(270deg,#faa,#fff)}.cv-hl-out{background:#fcc;background:linear-gradient(90deg,#faa,#fff)}.mono{font-family:monospace}.light{color:#ccc}.medium{color:#aaa}.source-similarity{font-weight:700}.source-suspect{color:#900}.source-possible{color:#990}.source-novio{color:#090}.source-excluded,.source-skipped{font-style:italic}a:link,a:visited{color:#002bb8;text-decoration:none}a:hover{color:#002bb8}a:active,a:hover{text-decoration:underline}a:active{color:#404}header a:hover,header a:link,header a:visited{color:#54595d}header a:active{color:#333}.source-url:link,.source-url:visited{color:#357}.source-url:hover{color:#035}.source-url:active{color:#404}.oo-ui-horizontalLayout>.oo-ui-dropdownInputWidget,.oo-ui-horizontalLayout>.oo-ui-textInputWidget{width:auto}.oo-ui-fieldLayout.oo-ui-fieldLayout-align-inline{hyphens:manual}.oo-ui-fieldLayout.oo-ui-labelElement.oo-ui-fieldLayout-align-left>.oo-ui-fieldLayout-body>.oo-ui-fieldLayout-header,.oo-ui-fieldLayout.oo-ui-labelElement.oo-ui-fieldLayout-align-right>.oo-ui-fieldLayout-body>.oo-ui-fieldLayout-header{width:10%}.oo-ui-fieldLayout.oo-ui-labelElement.oo-ui-fieldLayout-align-left>.oo-ui-fieldLayout-body>.oo-ui-fieldLayout-field,.oo-ui-fieldLayout.oo-ui-labelElement.oo-ui-fieldLayout-align-right>.oo-ui-fieldLayout-body>.oo-ui-fieldLayout-field{width:90%}.compare-url.oo-ui-textInputWidget,.page-title.oo-ui-textInputWidget{width:60%}.page-oldid.oo-ui-textInputWidget{width:10em}label.page,label.site{min-width:4em}label.action{min-width:10em}@media only screen and (max-width:720px){.oo-ui-horizontalLayout>.oo-ui-widget{width:100%}}
\ No newline at end of file
+body,html{height:100%;margin:0}body{background-attachment:fixed;background-color:#eaecf0;background-position:50%;background-size:cover;color:#000;display:flex;flex-direction:column;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Helvetica,Arial,sans-serif,Apple Color Emoji,Segoe UI Emoji;font-size:14px}#container{flex:auto;line-height:1.25;margin:0 auto}#container.splash{display:flex;flex-direction:column;justify-content:center}@media only screen and (min-width:1200px){#container.splash{max-width:1600px;min-width:1200px}}@media only screen and (max-width:1200px){#container.splash{width:100%}}#container.splash>.padding{height:25%}#content{background-color:#fff;border:1px solid #c8ccd1;filter:drop-shadow(0 0 10px rgba(0,0,0,.25));margin:1.5em 3em;padding:1em}@media only screen and (max-width:1000px){#content{margin:1em}}@media only screen and (max-width:400px){#content{margin:0}}header{background-color:#eaecf0;padding:.2em 1em}header>*{display:inline-block;vertical-align:middle}header h1{font-size:2.25em;font-weight:400;margin:0 1em 0 0}@media only screen and (max-width:500px){header h1{font-size:1.5em}}header .login-link,header .logout-link{margin-right:1em}header .login-link:before,header .logout-link:before{background-image:linear-gradient(transparent,transparent),url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 20 20'%3E%3Ctitle%3Euser avatar%3C/title%3E%3Cpath d='M10 11c-5.92 0-8 3-8 5v3h16v-3c0-2-2.08-5-8-5'/%3E%3Ccircle cx='10' cy='5.5' r='4.5'/%3E%3C/svg%3E")}#settings-link:before,header .login-link:before,header .logout-link:before{background-repeat:no-repeat;background-size:contain;color:#000;content:" ";font-size:.85em;opacity:.6;padding-left:1.67em}#settings-link:before{background-image:linear-gradient(transparent,transparent),url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' width='20' height='20' viewBox='0 0 20 20'%3E%3Ctitle%3Esettings%3C/title%3E%3Cg transform='translate(10 10)'%3E%3Cpath id='a' d='M1.5-10h-3l-1 6.5h5m0 7h-5l1 6.5h3'/%3E%3Cuse xlink:href='%23a' transform='rotate(45)'/%3E%3Cuse xlink:href='%23a' transform='rotate(90)'/%3E%3Cuse xlink:href='%23a' transform='rotate(135)'/%3E%3C/g%3E%3Cpath d='M10 2.5a7.5 7.5 0 0 0 0 15 7.5 7.5 0 0 0 0-15v4a3.5 3.5 0 0 1 0 7 3.5 3.5 0 0 1 0-7'/%3E%3C/svg%3E")}footer{background:#fff;border-top:1px solid #c8ccd1;font-size:.9em;line-height:1.5;padding:1em;text-align:center}footer ul{margin:0}footer li{display:inline}footer li:not(:last-child):after{content:" \00b7"}footer a{white-space:nowrap}ol,ul{line-height:1.5}h2{margin-bottom:.2em}#info-box,#notice-box{margin:1em 0;padding:0 1em}#notice-box ul{margin:0;padding-left:1.5em}#cv-result{margin:1em 0;padding:.5em}#attribution-warning{margin:1em 0;padding:1em}#sources-container,#turnitin-container{margin:1em 0;padding:.5em 1em 1em}#sources-container{background-color:#eee;border:1px solid #bbb}#sources-title,#turnitin-title{font-weight:700;margin-bottom:-.5em;text-align:center}#cv-additional{display:none}#generation-time{font-style:italic;text-align:right}@media only screen and (min-width:600px){#generation-time{margin-top:-1em}}#heading{width:100%}#cv-result-sources{border-spacing:0 .4em;table-layout:fixed;width:100%}#cv-result-sources col:first-child{width:80%}#cv-result-sources col:nth-child(2),#cv-result-sources col:nth-child(3){width:10%}#cv-result-sources th{text-align:left}#cv-result-sources tr:nth-child(2n){background-color:#e0e0e0}#cv-result-sources td:first-child{overflow:hidden;word-wrap:break-word}#cv-result-head-table{border-spacing:0;table-layout:fixed;text-align:center;width:100%}#cv-result-head-table col:nth-child(odd){width:42.5%}#cv-result-head-table col:nth-child(2){width:15%}#cv-result-head-table td:nth-child(odd){font-size:1.25em;font-weight:700;overflow:hidden;word-wrap:break-word}#cv-result-head-table td:nth-child(2) div:first-child{font-weight:700;white-space:nowrap}#cv-result-head-table td:nth-child(2) div:nth-child(2){font-size:2.5em;font-weight:700;line-height:1}#cv-result-head-table td:nth-child(2) div:nth-child(3){font-size:.8em}#cv-chain-table,#turnitin-table{border-spacing:0;table-layout:fixed;width:100%}#turnitin-table{word-wrap:break-word}#source-row-selected{background-color:#cfcfcf!important}#head-settings{text-align:right}#cv-result-header{margin:0}#redirected-from{font-size:.75em;font-weight:400}#redirected-from,#result-head-no-sources{font-style:italic}#source-selected{font-weight:700}.green-box{background-color:#efe;border:1px solid #7f7}.yellow-box{background-color:#ffd;border:1px solid #ee5}.red-box{background-color:#fee;border:1px solid #f77}.gray-box{background-color:#eee;border:1px solid #aaa}.indentable{white-space:pre-wrap}.cv-source-footer{font-style:italic;padding-bottom:.5em}.cv-source-footer a{font-style:normal}.cv-chain-detail{background-color:#fff;border:1px solid #bbb;padding:0 1em}.cv-chain-cell{vertical-align:top;word-wrap:break-word}.cv-chain-cell:first-child{padding-right:.5em}.cv-chain-cell:last-child{padding-left:.5em}.turnitin-table-cell{padding:.5em 0 .3em}.turnitin-table-cell ul{line-height:1.4;margin:.2em 0 0}.cv-hl{background:#faa}.cv-hl-in{background:#fcc;background:linear-gradient(270deg,#faa,#fff)}.cv-hl-out{background:#fcc;background:linear-gradient(90deg,#faa,#fff)}.light{color:#ccc}.medium{color:#aaa}.source-similarity{font-weight:700}.source-suspect{color:#900}.source-possible{color:#990}.source-novio{color:#090}.source-excluded,.source-skipped{font-style:italic}a:link,a:visited{color:#002bb8;text-decoration:none}a:hover{color:#002bb8}a:active,a:hover{text-decoration:underline}a:active{color:#404}header a:hover,header a:link,header a:visited{color:#54595d}header a:active{color:#333}.source-url:link,.source-url:visited{color:#357}.source-url:hover{color:#035}.source-url:active{color:#404}.oo-ui-horizontalLayout>.oo-ui-dropdownInputWidget,.oo-ui-horizontalLayout>.oo-ui-textInputWidget{width:auto}.oo-ui-fieldLayout.oo-ui-fieldLayout-align-inline{hyphens:manual}.oo-ui-fieldLayout.oo-ui-labelElement.oo-ui-fieldLayout-align-left>.oo-ui-fieldLayout-body>.oo-ui-fieldLayout-header,.oo-ui-fieldLayout.oo-ui-labelElement.oo-ui-fieldLayout-align-right>.oo-ui-fieldLayout-body>.oo-ui-fieldLayout-header{width:10%}.oo-ui-fieldLayout.oo-ui-labelElement.oo-ui-fieldLayout-align-left>.oo-ui-fieldLayout-body>.oo-ui-fieldLayout-field,.oo-ui-fieldLayout.oo-ui-labelElement.oo-ui-fieldLayout-align-right>.oo-ui-fieldLayout-body>.oo-ui-fieldLayout-field{width:90%}.compare-url.oo-ui-textInputWidget,.page-title.oo-ui-textInputWidget{width:60%}.page-oldid.oo-ui-textInputWidget{width:10em}label.page,label.site{min-width:4em}label.action{min-width:10em}@media only screen and (max-width:720px){.oo-ui-horizontalLayout>.oo-ui-widget{width:100%}}
\ No newline at end of file
diff --git a/src/copyvios/templates/error.html.jinja b/src/copyvios/templates/error.html.jinja
index 01a504d..b72b7eb 100644
--- a/src/copyvios/templates/error.html.jinja
+++ b/src/copyvios/templates/error.html.jinja
@@ -4,7 +4,7 @@
{% endblock %}
{% block content %}
{{ message('error-heading') }}
- {{ traceback | trim | e }}
{{ message('error-bad-site', project=query.project, lang=query.lang, site_url=site_confirm_link | safe) }}
+ {% set bad_site_url = "https://" ~ query.lang ~ "." ~ query.project ~ ".org/" %} +{{ message('error-bad-site', project=query.project, lang=query.lang, url_site=bad_site_url | e) }}
{{ message('error-revision-not-found', revision_url=rev_link | safe) }}
+ {% set rev_url = "https://" ~ g.site.domain ~ "/w/index.php?oldid=" ~ query.oldid %} +{{ message('error-revision-not-found', url_revision=rev_url | e, revision_id=query.oldid | e) }}
{{ message('error-page-not-found', page_url=page_link | safe) }}
+{{ message('error-page-not-found', url_page=g.page.url | e, page_title=g.page.title | e) }}
{{ message('intro-paragraph-1', - copyright_url=('' ~ (message('intro-copyright-violations') | striptags) ~ '') | safe) }}
+{{ message('intro-paragraph-1', url_copyright=(message('intro-paragraph-1-copyvio-url') | e), url_dupdet='https://dupdet.toolforge.org') }}
{{ message('intro-paragraph-2') }}
-{{ message('intro-paragraph-3', exclusions_url=('' ~ (message('intro-exclusions-list') | striptags) ~ '') | safe) }}
+{{ message('intro-paragraph-3', url_exclusions='https://en.wikipedia.org/wiki/User:EarwigBot/Copyvios/Exclusions') }}
{% include "support/cv_form.html.jinja" %} {% if result %} {% include "support/cv_result.html.jinja" %} diff --git a/src/copyvios/templates/login.html.jinja b/src/copyvios/templates/login.html.jinja index 55699b0..4d651d5 100644 --- a/src/copyvios/templates/login.html.jinja +++ b/src/copyvios/templates/login.html.jinja @@ -14,11 +14,11 @@ {% if is_search %}{{ message('after-login-search') }}
{% else %} -{{ message('after-login-redirect', redirect_url=request.args["next"]) }}
+{{ message('after-login-redirect', redirect_url=request.args["next"] | e) }}
{% endif %} {% endif %}