diff --git a/AGENTS.md b/AGENTS.md index af23e06..f39e3dd 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -162,9 +162,10 @@ A banned target (a 404 whose body says `"reason": "banned"`, `SUBREDDIT_IS_BANNE the reply. - Formats submission title (e.g. uppercase for `r/totallynotrobots`). - Executes `submission.crosspost()` and posts an explanatory reply using localized text templates loaded by [`src/racb/i18n.py`](./src/racb/i18n.py) from the gettext catalogs in [`src/racb/locales/`](./src/racb/locales/). - The reply (`REPLY_TO_CROSSPOST`) says the target was searched for the same URL and, for image and video - posts, adds one sentence from `phase3.describe_media_scan`: how many image (or video) posts were compared - and over what period (`REPLY_TO_CROSSPOST_IMAGE_CHECK` / `..._VIDEO_CHECK`), the same for a scan cut short + The reply (`REPLY_TO_CROSSPOST`) says the whole target was searched for the same URL and for crossposts and, + for image and video posts, adds one sentence from `phase3.describe_media_scan`: how many image (or video) + posts were compared and over what period (`REPLY_TO_CROSSPOST_IMAGE_CHECK` / `..._VIDEO_CHECK`), that the + newest ones from before the comment (the Phase 1 check) and the top posts were compared too, the same for a scan cut short by Reddit's listing limit (`..._IMAGE_CHECK_PARTIAL` / `..._VIDEO_CHECK_PARTIAL`). A scan that found no posts to compare adds no sentence. That sentence links to `duplicate_detector.py` on GitHub (`DUPLICATE_DETECTOR_SOURCE_URL`), so keep that file readable. diff --git a/CHANGELOG.md b/CHANGELOG.md index a9009f9..1bf6fd8 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,9 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] +### Changed +- **Crosspost Reply Describes the Whole Repost Check:** the reply said only that the target was searched for the same URL and that the image (or video) posts made since the suggestion were compared, which left out most of what was checked. It now also says that the whole target was searched, crossposts of the post included ("other discussions"), and that the picture was also compared with the newest posts from before the suggestion (the check made when the comment was first seen) and with the target's top posts of the past year and of all time. Updated in every language. + ## [3.0.2] - 2026-10-16 ### Fixed diff --git a/src/racb/locales/de/LC_MESSAGES/messages.po b/src/racb/locales/de/LC_MESSAGES/messages.po index f3dca0b..7691431 100644 --- a/src/racb/locales/de/LC_MESSAGES/messages.po +++ b/src/racb/locales/de/LC_MESSAGES/messages.po @@ -34,7 +34,7 @@ msgstr "" "\n" "Ich habe diesen Beitrag von r/{source_subreddit} nach r/{target_subreddit} gecrosspostet, nachdem ich [diesen ordentlich hochgevoteten, **von einem Menschen geschriebenen**^1 Kommentar]({source_comment_permalink}) (Score={source_comment_score}) gesehen habe, der nahelegt, dass dieser Beitrag auch hier gut passen würde.\n" "\n" -"Um Reposts zu vermeiden, habe ich r/{target_subreddit} nach Beiträgen mit derselben URL durchsucht.{image_check}\n" +"Um Reposts zu vermeiden, habe ich ganz r/{target_subreddit} nach Beiträgen mit derselben URL und nach Crossposts dieses Beitrags durchsucht.{image_check}\n" "\n" "Zudem habe ich {timedelta_string} gewartet, falls ein Mensch das lieber selbst crossposten wollte.\n" "\n" @@ -45,16 +45,16 @@ msgstr "" "\n" msgid "REPLY_TO_CROSSPOST_IMAGE_CHECK" -msgstr " Außerdem habe ich alle Bild-Beiträge der letzten {scan_period} in r/{target_subreddit} (insgesamt {post_count}) [auf Duplikate]({duplicate_detector_url}) dieses Bildes geprüft. Es wurden keine gefunden." +msgstr " Außerdem habe ich dieses Bild mit allen Bild-Beiträgen der letzten {scan_period} in r/{target_subreddit} (insgesamt {post_count}), mit den neuesten Bild-Beiträgen davor und mit den Top-Bild-Beiträgen des letzten Jahres und aller Zeiten [verglichen]({duplicate_detector_url}). Es gab keine Übereinstimmung." msgid "REPLY_TO_CROSSPOST_IMAGE_CHECK_PARTIAL" -msgstr " Außerdem habe ich die neuesten Bild-Beiträge in r/{target_subreddit} (insgesamt {post_count}, bis zu {scan_period} zurück) [auf Duplikate]({duplicate_detector_url}) dieses Bildes geprüft. Es wurden keine gefunden." +msgstr " Außerdem habe ich dieses Bild mit den neuesten Bild-Beiträgen in r/{target_subreddit} (insgesamt {post_count}, bis zu {scan_period} zurück), mit den neuesten Bild-Beiträgen zum Zeitpunkt des Kommentars und mit den Top-Bild-Beiträgen des letzten Jahres und aller Zeiten [verglichen]({duplicate_detector_url}). Es gab keine Übereinstimmung." msgid "REPLY_TO_CROSSPOST_VIDEO_CHECK" -msgstr " Außerdem habe ich alle Video-Beiträge der letzten {scan_period} in r/{target_subreddit} (insgesamt {post_count}) [auf Duplikate]({duplicate_detector_url}) dieses Videos geprüft. Es wurden keine gefunden." +msgstr " Außerdem habe ich dieses Video mit allen Video-Beiträgen der letzten {scan_period} in r/{target_subreddit} (insgesamt {post_count}), mit den neuesten Video-Beiträgen davor und mit den Top-Video-Beiträgen des letzten Jahres und aller Zeiten [verglichen]({duplicate_detector_url}). Es gab keine Übereinstimmung." msgid "REPLY_TO_CROSSPOST_VIDEO_CHECK_PARTIAL" -msgstr " Außerdem habe ich die neuesten Video-Beiträge in r/{target_subreddit} (insgesamt {post_count}, bis zu {scan_period} zurück) [auf Duplikate]({duplicate_detector_url}) dieses Videos geprüft. Es wurden keine gefunden." +msgstr " Außerdem habe ich dieses Video mit den neuesten Video-Beiträgen in r/{target_subreddit} (insgesamt {post_count}, bis zu {scan_period} zurück), mit den neuesten Video-Beiträgen zum Zeitpunkt des Kommentars und mit den Top-Video-Beiträgen des letzten Jahres und aller Zeiten [verglichen]({duplicate_detector_url}). Es gab keine Übereinstimmung." msgid "BAD_BOT_PHRASE" msgstr "Schlechter Bot" diff --git a/src/racb/locales/en/LC_MESSAGES/messages.po b/src/racb/locales/en/LC_MESSAGES/messages.po index c5a2947..38e4ea5 100644 --- a/src/racb/locales/en/LC_MESSAGES/messages.po +++ b/src/racb/locales/en/LC_MESSAGES/messages.po @@ -35,7 +35,7 @@ msgstr "" "\n" "I crossposted this from r/{source_subreddit} to r/{target_subreddit} after seeing [this decently upvoted **human-made**^1 comment]({source_comment_permalink}) (score={source_comment_score}) written {timedelta_string} ago by {source_comment_author_name}, that seems to suggest that this post would be a good fit here too.\n" "\n" -"To prevent reposts, I looked through r/{target_subreddit} for posts with the same URL.{image_check}\n" +"To prevent reposts, I searched all of r/{target_subreddit} for posts with the same URL and for crossposts of this post.{image_check}\n" "\n" "I also waited {timedelta_string} before crossposting, in case a human might've wanted to crosspost this themselves.\n" "\n" @@ -46,16 +46,16 @@ msgstr "" "\n" msgid "REPLY_TO_CROSSPOST_IMAGE_CHECK" -msgstr " I also looked through all {post_count} image posts made in r/{target_subreddit} in the last {scan_period} and [checked for duplicates]({duplicate_detector_url}) of this image. None were found." +msgstr " I also [compared this image]({duplicate_detector_url}) with all {post_count} image posts made in r/{target_subreddit} in the last {scan_period}, with the newest ones from before then, and with its top image posts of the past year and of all time. None matched." msgid "REPLY_TO_CROSSPOST_IMAGE_CHECK_PARTIAL" -msgstr " I also looked through the {post_count} newest image posts in r/{target_subreddit}, going back {scan_period}, and [checked for duplicates]({duplicate_detector_url}) of this image. None were found." +msgstr " I also [compared this image]({duplicate_detector_url}) with the {post_count} newest image posts in r/{target_subreddit}, going back {scan_period}, with the newest ones from when the comment was written, and with its top image posts of the past year and of all time. None matched." msgid "REPLY_TO_CROSSPOST_VIDEO_CHECK" -msgstr " I also looked through all {post_count} video posts made in r/{target_subreddit} in the last {scan_period} and [checked for duplicates]({duplicate_detector_url}) of this video. None were found." +msgstr " I also [compared this video]({duplicate_detector_url}) with all {post_count} video posts made in r/{target_subreddit} in the last {scan_period}, with the newest ones from before then, and with its top video posts of the past year and of all time. None matched." msgid "REPLY_TO_CROSSPOST_VIDEO_CHECK_PARTIAL" -msgstr " I also looked through the {post_count} newest video posts in r/{target_subreddit}, going back {scan_period}, and [checked for duplicates]({duplicate_detector_url}) of this video. None were found." +msgstr " I also [compared this video]({duplicate_detector_url}) with the {post_count} newest video posts in r/{target_subreddit}, going back {scan_period}, with the newest ones from when the comment was written, and with its top video posts of the past year and of all time. None matched." msgid "BAD_BOT_PHRASE" msgstr "Bad bot" diff --git a/src/racb/locales/en@totallynotrobots/LC_MESSAGES/messages.po b/src/racb/locales/en@totallynotrobots/LC_MESSAGES/messages.po index 59672a0..e4e8b44 100644 --- a/src/racb/locales/en@totallynotrobots/LC_MESSAGES/messages.po +++ b/src/racb/locales/en@totallynotrobots/LC_MESSAGES/messages.po @@ -35,7 +35,7 @@ msgstr "" "\n" "I CROSSPOSTED THIS FROM r/{source_subreddit} TO r/{target_subreddit} AFTER SEEING [THIS DECENTLY UPVOTED **HUMAN-MADE**^1 COMMENT]({source_comment_permalink}) (SCORE={source_comment_score}), THAT SEEMS TO SUGGEST THAT THIS POST WOULD BE A GOOD FIT HERE TOO.\n" "\n" -"TO PREVENT REPOSTS, I LOOKED THROUGH r/{target_subreddit} FOR POSTS WITH THE SAME URL.{image_check}\n" +"TO PREVENT REPOSTS, I SEARCHED ALL OF r/{target_subreddit} FOR POSTS WITH THE SAME URL AND FOR CROSSPOSTS OF THIS POST.{image_check}\n" "\n" "I ALSO WAITED {timedelta_string} BEFORE CROSSPOSTING, TO GIVE OTHER HUMANS A CHANCE TO CROSSPOST THIS THEMSELVES.\n" "\n" @@ -46,16 +46,16 @@ msgstr "" "\n" msgid "REPLY_TO_CROSSPOST_IMAGE_CHECK" -msgstr " I ALSO LOOKED THROUGH ALL {post_count} IMAGE POSTS MADE IN r/{target_subreddit} IN THE LAST {scan_period} AND [CHECKED FOR DUPLICATES]({duplicate_detector_url}) OF THIS IMAGE. NONE WERE FOUND." +msgstr " I ALSO [COMPARED THIS IMAGE]({duplicate_detector_url}) WITH ALL {post_count} IMAGE POSTS MADE IN r/{target_subreddit} IN THE LAST {scan_period}, WITH THE NEWEST ONES FROM BEFORE THEN, AND WITH ITS TOP IMAGE POSTS OF THE PAST YEAR AND OF ALL TIME. NONE MATCHED." msgid "REPLY_TO_CROSSPOST_IMAGE_CHECK_PARTIAL" -msgstr " I ALSO LOOKED THROUGH THE {post_count} NEWEST IMAGE POSTS IN r/{target_subreddit}, GOING BACK {scan_period}, AND [CHECKED FOR DUPLICATES]({duplicate_detector_url}) OF THIS IMAGE. NONE WERE FOUND." +msgstr " I ALSO [COMPARED THIS IMAGE]({duplicate_detector_url}) WITH THE {post_count} NEWEST IMAGE POSTS IN r/{target_subreddit}, GOING BACK {scan_period}, WITH THE NEWEST ONES FROM WHEN THE COMMENT WAS WRITTEN, AND WITH ITS TOP IMAGE POSTS OF THE PAST YEAR AND OF ALL TIME. NONE MATCHED." msgid "REPLY_TO_CROSSPOST_VIDEO_CHECK" -msgstr " I ALSO LOOKED THROUGH ALL {post_count} VIDEO POSTS MADE IN r/{target_subreddit} IN THE LAST {scan_period} AND [CHECKED FOR DUPLICATES]({duplicate_detector_url}) OF THIS VIDEO. NONE WERE FOUND." +msgstr " I ALSO [COMPARED THIS VIDEO]({duplicate_detector_url}) WITH ALL {post_count} VIDEO POSTS MADE IN r/{target_subreddit} IN THE LAST {scan_period}, WITH THE NEWEST ONES FROM BEFORE THEN, AND WITH ITS TOP VIDEO POSTS OF THE PAST YEAR AND OF ALL TIME. NONE MATCHED." msgid "REPLY_TO_CROSSPOST_VIDEO_CHECK_PARTIAL" -msgstr " I ALSO LOOKED THROUGH THE {post_count} NEWEST VIDEO POSTS IN r/{target_subreddit}, GOING BACK {scan_period}, AND [CHECKED FOR DUPLICATES]({duplicate_detector_url}) OF THIS VIDEO. NONE WERE FOUND." +msgstr " I ALSO [COMPARED THIS VIDEO]({duplicate_detector_url}) WITH THE {post_count} NEWEST VIDEO POSTS IN r/{target_subreddit}, GOING BACK {scan_period}, WITH THE NEWEST ONES FROM WHEN THE COMMENT WAS WRITTEN, AND WITH ITS TOP VIDEO POSTS OF THE PAST YEAR AND OF ALL TIME. NONE MATCHED." msgid "BAD_BOT_PHRASE" msgstr "Bad human" diff --git a/src/racb/locales/es/LC_MESSAGES/messages.po b/src/racb/locales/es/LC_MESSAGES/messages.po index d47b3cc..0438e39 100644 --- a/src/racb/locales/es/LC_MESSAGES/messages.po +++ b/src/racb/locales/es/LC_MESSAGES/messages.po @@ -34,7 +34,7 @@ msgstr "" "\n" "Compartí esto de r/{source_subreddit} en r/{target_subreddit} después de ver [este comentario **hecho por humanos**^1 con una votación decente]({source_comment_permalink}) (score={source_comment_score}), que parece sugerir que esta publicación también encajaría bien aquí.\n" "\n" -"Para evitar reposts, busqué en r/{target_subreddit} publicaciones con la misma URL.{image_check}\n" +"Para evitar reposts, busqué en todo r/{target_subreddit} publicaciones con la misma URL y crossposts de esta publicación.{image_check}\n" "\n" "También esperé {timedelta_string} antes de compartirlo, por si una persona quería hacerlo por su cuenta.\n" "\n" @@ -45,16 +45,16 @@ msgstr "" "\n" msgid "REPLY_TO_CROSSPOST_IMAGE_CHECK" -msgstr " También revisé todas las publicaciones con imágenes de los últimos {scan_period} en r/{target_subreddit} (en total, {post_count}) y [busqué duplicados]({duplicate_detector_url}) de esta imagen. No se encontró ninguno." +msgstr " También [comparé esta imagen]({duplicate_detector_url}) con todas las publicaciones con imágenes de los últimos {scan_period} en r/{target_subreddit} (en total, {post_count}), con las más recientes de antes y con las publicaciones con imágenes más votadas del último año y de todos los tiempos. No coincidió con ninguna." msgid "REPLY_TO_CROSSPOST_IMAGE_CHECK_PARTIAL" -msgstr " También revisé las publicaciones con imágenes más recientes de r/{target_subreddit} (en total, {post_count}, de hasta hace {scan_period}) y [busqué duplicados]({duplicate_detector_url}) de esta imagen. No se encontró ninguno." +msgstr " También [comparé esta imagen]({duplicate_detector_url}) con las publicaciones con imágenes más recientes de r/{target_subreddit} (en total, {post_count}, de hasta hace {scan_period}), con las más recientes de cuando se escribió el comentario y con las publicaciones con imágenes más votadas del último año y de todos los tiempos. No coincidió con ninguna." msgid "REPLY_TO_CROSSPOST_VIDEO_CHECK" -msgstr " También revisé todas las publicaciones con vídeos de los últimos {scan_period} en r/{target_subreddit} (en total, {post_count}) y [busqué duplicados]({duplicate_detector_url}) de este vídeo. No se encontró ninguno." +msgstr " También [comparé este vídeo]({duplicate_detector_url}) con todas las publicaciones con vídeos de los últimos {scan_period} en r/{target_subreddit} (en total, {post_count}), con las más recientes de antes y con las publicaciones con vídeos más votadas del último año y de todos los tiempos. No coincidió con ninguna." msgid "REPLY_TO_CROSSPOST_VIDEO_CHECK_PARTIAL" -msgstr " También revisé las publicaciones con vídeos más recientes de r/{target_subreddit} (en total, {post_count}, de hasta hace {scan_period}) y [busqué duplicados]({duplicate_detector_url}) de este vídeo. No se encontró ninguno." +msgstr " También [comparé este vídeo]({duplicate_detector_url}) con las publicaciones con vídeos más recientes de r/{target_subreddit} (en total, {post_count}, de hasta hace {scan_period}), con las más recientes de cuando se escribió el comentario y con las publicaciones con vídeos más votadas del último año y de todos los tiempos. No coincidió con ninguna." msgid "BAD_BOT_PHRASE" msgstr "Mal bot" diff --git a/src/racb/locales/fr/LC_MESSAGES/messages.po b/src/racb/locales/fr/LC_MESSAGES/messages.po index 0b0ee16..d0f0360 100644 --- a/src/racb/locales/fr/LC_MESSAGES/messages.po +++ b/src/racb/locales/fr/LC_MESSAGES/messages.po @@ -34,7 +34,7 @@ msgstr "" "\n" "J'ai crossposté ceci de r/{source_subreddit} vers r/{target_subreddit} après avoir vu [ce commentaire **écrit par un humain**^1 et plutôt bien noté]({source_comment_permalink}) (score={source_comment_score}), qui semble suggérer que cette publication aurait aussi sa place ici.\n" "\n" -"Pour éviter les reposts, j'ai cherché dans r/{target_subreddit} des publications avec la même URL.{image_check}\n" +"Pour éviter les reposts, j'ai cherché dans tout r/{target_subreddit} des publications avec la même URL et des crossposts de cette publication.{image_check}\n" "\n" "J'ai aussi attendu {timedelta_string} avant de crossposter, au cas où un humain aurait voulu le faire lui-même.\n" "\n" @@ -45,16 +45,16 @@ msgstr "" "\n" msgid "REPLY_TO_CROSSPOST_IMAGE_CHECK" -msgstr " J'ai aussi parcouru toutes les publications d'images faites dans r/{target_subreddit} au cours des {scan_period} précédents (au total : {post_count}) et [cherché des doublons]({duplicate_detector_url}) de cette image. Aucun n'a été trouvé." +msgstr " J'ai aussi [comparé cette image]({duplicate_detector_url}) à toutes les publications d'images faites dans r/{target_subreddit} au cours des {scan_period} précédents (au total : {post_count}), aux plus récentes d'avant cette période et aux publications d'images les mieux notées de l'année écoulée et de tous les temps. Aucune ne correspondait." msgid "REPLY_TO_CROSSPOST_IMAGE_CHECK_PARTIAL" -msgstr " J'ai aussi parcouru les publications d'images les plus récentes de r/{target_subreddit} (au total : {post_count}, jusqu'à il y a {scan_period}) et [cherché des doublons]({duplicate_detector_url}) de cette image. Aucun n'a été trouvé." +msgstr " J'ai aussi [comparé cette image]({duplicate_detector_url}) aux publications d'images les plus récentes de r/{target_subreddit} (au total : {post_count}, jusqu'à il y a {scan_period}), aux plus récentes au moment du commentaire et aux publications d'images les mieux notées de l'année écoulée et de tous les temps. Aucune ne correspondait." msgid "REPLY_TO_CROSSPOST_VIDEO_CHECK" -msgstr " J'ai aussi parcouru toutes les publications de vidéos faites dans r/{target_subreddit} au cours des {scan_period} précédents (au total : {post_count}) et [cherché des doublons]({duplicate_detector_url}) de cette vidéo. Aucun n'a été trouvé." +msgstr " J'ai aussi [comparé cette vidéo]({duplicate_detector_url}) à toutes les publications de vidéos faites dans r/{target_subreddit} au cours des {scan_period} précédents (au total : {post_count}), aux plus récentes d'avant cette période et aux publications de vidéos les mieux notées de l'année écoulée et de tous les temps. Aucune ne correspondait." msgid "REPLY_TO_CROSSPOST_VIDEO_CHECK_PARTIAL" -msgstr " J'ai aussi parcouru les publications de vidéos les plus récentes de r/{target_subreddit} (au total : {post_count}, jusqu'à il y a {scan_period}) et [cherché des doublons]({duplicate_detector_url}) de cette vidéo. Aucun n'a été trouvé." +msgstr " J'ai aussi [comparé cette vidéo]({duplicate_detector_url}) aux publications de vidéos les plus récentes de r/{target_subreddit} (au total : {post_count}, jusqu'à il y a {scan_period}), aux plus récentes au moment du commentaire et aux publications de vidéos les mieux notées de l'année écoulée et de tous les temps. Aucune ne correspondait." msgid "BAD_BOT_PHRASE" msgstr "Mauvais bot" diff --git a/src/racb/locales/he/LC_MESSAGES/messages.po b/src/racb/locales/he/LC_MESSAGES/messages.po index 1696707..2fe5070 100644 --- a/src/racb/locales/he/LC_MESSAGES/messages.po +++ b/src/racb/locales/he/LC_MESSAGES/messages.po @@ -34,7 +34,7 @@ msgstr "" "\n" "עשיתי קרוספוסט מ־ r/{source_subreddit} ל־ r/{target_subreddit} אחרי שראיתי את [הקומענט הזה **שנכתב על ידי בן אדם**^1]({source_comment_permalink}) (ניקוד={source_comment_score}), שמרמז כי הפוסט הזה מתאים גם לכאן.\n" "\n" -"כדי למנוע ריפוסטים, חיפשתי ב־ r/{target_subreddit} פוסטים עם אותה כתובת URL.{image_check}\n" +"כדי למנוע ריפוסטים, חיפשתי בכל ההיסטוריה של r/{target_subreddit} פוסטים עם אותה כתובת URL וקרוספוסטים של הפוסט הזה.{image_check}\n" "\n" "חוץ מזה, חיכיתי {timedelta_string} לפני שעשיתי קרוספוסט, למקרה שבן אדם היה רוצה לעשות את זה בעצמו.\n" "\n" @@ -45,16 +45,16 @@ msgstr "" "\n" msgid "REPLY_TO_CROSSPOST_IMAGE_CHECK" -msgstr " בנוסף, עברתי על כל הפוסטים של תמונות שפורסמו ב־ r/{target_subreddit} מאז שהקומענט נכתב (בסך הכול {post_count}) ו[בדקתי אם יש ביניהם כפילויות]({duplicate_detector_url}) של התמונה הזו. לא נמצאו כפילויות." +msgstr " בנוסף, [השוויתי את התמונה הזו]({duplicate_detector_url}) לכל הפוסטים של תמונות שפורסמו ב־ r/{target_subreddit} מאז שהקומענט נכתב (בסך הכול {post_count}), לפוסטים האחרונים של תמונות מלפני כן, ולפוסטים המובילים של תמונות מהשנה האחרונה ומכל הזמנים. לא נמצאה התאמה." msgid "REPLY_TO_CROSSPOST_IMAGE_CHECK_PARTIAL" -msgstr " בנוסף, עברתי על הפוסטים האחרונים של תמונות ב־ r/{target_subreddit} (בסך הכול {post_count}, עד {scan_period} אחורה) ו[בדקתי אם יש ביניהם כפילויות]({duplicate_detector_url}) של התמונה הזו. לא נמצאו כפילויות." +msgstr " בנוסף, [השוויתי את התמונה הזו]({duplicate_detector_url}) לפוסטים האחרונים של תמונות ב־ r/{target_subreddit} (בסך הכול {post_count}, עד {scan_period} אחורה), לפוסטים האחרונים של תמונות מהזמן שבו הקומענט נכתב, ולפוסטים המובילים של תמונות מהשנה האחרונה ומכל הזמנים. לא נמצאה התאמה." msgid "REPLY_TO_CROSSPOST_VIDEO_CHECK" -msgstr " בנוסף, עברתי על כל הפוסטים של סרטונים שפורסמו ב־ r/{target_subreddit} מאז שהקומענט נכתב (בסך הכול {post_count}) ו[בדקתי אם יש ביניהם כפילויות]({duplicate_detector_url}) של הסרטון הזה. לא נמצאו כפילויות." +msgstr " בנוסף, [השוויתי את הסרטון הזה]({duplicate_detector_url}) לכל הפוסטים של סרטונים שפורסמו ב־ r/{target_subreddit} מאז שהקומענט נכתב (בסך הכול {post_count}), לפוסטים האחרונים של סרטונים מלפני כן, ולפוסטים המובילים של סרטונים מהשנה האחרונה ומכל הזמנים. לא נמצאה התאמה." msgid "REPLY_TO_CROSSPOST_VIDEO_CHECK_PARTIAL" -msgstr " בנוסף, עברתי על הפוסטים האחרונים של סרטונים ב־ r/{target_subreddit} (בסך הכול {post_count}, עד {scan_period} אחורה) ו[בדקתי אם יש ביניהם כפילויות]({duplicate_detector_url}) של הסרטון הזה. לא נמצאו כפילויות." +msgstr " בנוסף, [השוויתי את הסרטון הזה]({duplicate_detector_url}) לפוסטים האחרונים של סרטונים ב־ r/{target_subreddit} (בסך הכול {post_count}, עד {scan_period} אחורה), לפוסטים האחרונים של סרטונים מהזמן שבו הקומענט נכתב, ולפוסטים המובילים של סרטונים מהשנה האחרונה ומכל הזמנים. לא נמצאה התאמה." msgid "BAD_BOT_PHRASE" msgstr "בוט רע" diff --git a/src/racb/locales/ru/LC_MESSAGES/messages.po b/src/racb/locales/ru/LC_MESSAGES/messages.po index 534da6a..e755599 100644 --- a/src/racb/locales/ru/LC_MESSAGES/messages.po +++ b/src/racb/locales/ru/LC_MESSAGES/messages.po @@ -34,7 +34,7 @@ msgstr "" "\n" "Я сделал кросспост из r/{source_subreddit} в r/{target_subreddit}, увидев [этот **написанный человеком**^1 и довольно заплюсованный комментарий]({source_comment_permalink}) (рейтинг={source_comment_score}), который {source_comment_author_name} написал {timedelta_string} назад. Похоже, этот пост хорошо подойдёт и сюда.\n" "\n" -"Чтобы избежать репостов, я поискал в r/{target_subreddit} посты с тем же URL.{image_check}\n" +"Чтобы избежать репостов, я поискал во всём r/{target_subreddit} посты с тем же URL и кросспосты этого поста.{image_check}\n" "\n" "Кроме того, я подождал {timedelta_string} перед кросспостом на случай, если кто-то из людей захочет сделать его сам.\n" "\n" @@ -45,16 +45,16 @@ msgstr "" "\n" msgid "REPLY_TO_CROSSPOST_IMAGE_CHECK" -msgstr " Ещё я [сравнил с этой картинкой]({duplicate_detector_url}) все посты с картинками, опубликованные в r/{target_subreddit} за последние {scan_period} (всего {post_count}). Совпадений не нашлось." +msgstr " Ещё я [сравнил с этой картинкой]({duplicate_detector_url}) все посты с картинками, опубликованные в r/{target_subreddit} за последние {scan_period} (всего {post_count}), самые новые из более ранних и лучшие посты с картинками за год и за всё время. Совпадений не нашлось." msgid "REPLY_TO_CROSSPOST_IMAGE_CHECK_PARTIAL" -msgstr " Ещё я [сравнил с этой картинкой]({duplicate_detector_url}) самые новые посты с картинками в r/{target_subreddit} (всего {post_count}, до {scan_period} назад). Совпадений не нашлось." +msgstr " Ещё я [сравнил с этой картинкой]({duplicate_detector_url}) самые новые посты с картинками в r/{target_subreddit} (всего {post_count}, до {scan_period} назад), самые новые на момент написания комментария и лучшие посты с картинками за год и за всё время. Совпадений не нашлось." msgid "REPLY_TO_CROSSPOST_VIDEO_CHECK" -msgstr " Ещё я [сравнил с этим видео]({duplicate_detector_url}) все посты с видео, опубликованные в r/{target_subreddit} за последние {scan_period} (всего {post_count}). Совпадений не нашлось." +msgstr " Ещё я [сравнил с этим видео]({duplicate_detector_url}) все посты с видео, опубликованные в r/{target_subreddit} за последние {scan_period} (всего {post_count}), самые новые из более ранних и лучшие посты с видео за год и за всё время. Совпадений не нашлось." msgid "REPLY_TO_CROSSPOST_VIDEO_CHECK_PARTIAL" -msgstr " Ещё я [сравнил с этим видео]({duplicate_detector_url}) самые новые посты с видео в r/{target_subreddit} (всего {post_count}, до {scan_period} назад). Совпадений не нашлось." +msgstr " Ещё я [сравнил с этим видео]({duplicate_detector_url}) самые новые посты с видео в r/{target_subreddit} (всего {post_count}, до {scan_period} назад), самые новые на момент написания комментария и лучшие посты с видео за год и за всё время. Совпадений не нашлось." msgid "BAD_BOT_PHRASE" msgstr "Плохой бот" diff --git a/tests/unit/test_phase3.py b/tests/unit/test_phase3.py index f730646..8b7a883 100644 --- a/tests/unit/test_phase3.py +++ b/tests/unit/test_phase3.py @@ -159,7 +159,7 @@ def test_reply_to_crosspost_without_image_scan_has_no_image_sentence(make_mock_c cross_post = MagicMock() phase3.reply_to_crosspost(comment, cross_post, 'pics', media_scan=None) reply_text = cross_post.reply.call_args.args[0] - assert 'To prevent reposts, I looked through r/pics for posts with the same URL.\n' in reply_text + assert 'To prevent reposts, I searched all of r/pics for posts with the same URL and for crossposts of this post.\n' in reply_text assert 'duplicate_detector.py' not in reply_text @@ -171,8 +171,9 @@ def test_reply_to_crosspost_reports_complete_image_scan(make_mock_comment): phase3.reply_to_crosspost(comment, cross_post, 'pics', media_scan=make_media_scan(412)) reply_text = cross_post.reply.call_args.args[0] assert ( - 'I also looked through all 412 image posts made in r/pics in the last 90 days and ' - f'[checked for duplicates]({phase3.DUPLICATE_DETECTOR_SOURCE_URL}) of this image. None were found.' + f'I also [compared this image]({phase3.DUPLICATE_DETECTOR_SOURCE_URL}) with all 412 image posts made in ' + 'r/pics in the last 90 days, with the newest ones from before then, and with its top image posts of the ' + 'past year and of all time. None matched.' ) in reply_text @@ -184,7 +185,7 @@ def test_reply_to_crosspost_reports_partial_image_scan(make_mock_comment): cross_post = MagicMock() phase3.reply_to_crosspost(comment, cross_post, 'pics', media_scan=scan) reply_text = cross_post.reply.call_args.args[0] - assert 'the 870 newest image posts in r/pics, going back 12 days' in reply_text + assert 'the 870 newest image posts in r/pics, going back 12 days, with the newest ones from when the comment was written' in reply_text assert "Reddit doesn't list older posts" not in reply_text