diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md new file mode 100644 index 0000000..13953ea --- /dev/null +++ b/CONTRIBUTING.md @@ -0,0 +1,8 @@ +Welcome! +If you got here, it means you want to learn how to contribute to my little project. That's great! Thank you for your interest. + +## Code ## +This may be a bit painful, the quality of code can be very... Questionable, to say the least. However, if you like adventures, you are free to contribute to the project! All I ask you is just so you send merge requests to the testing branch. + +## Translations ## +If you speak in other languages than English, you are more than welcome to. All you need to do, is grab the [translation template file](rcgcdw.pot) and fill out the empty strings under every English sentence. You can use software like Poedit or use your favorite text editor to do that. If you are looking for examples, you can look at [Polish translation](/locale/pl/LC_MESSAGES/rcgcdw.po). After you translate it, you can either send a merge request to the testing branch, or, if you don't know git [contact me directly](https://minecraft.gamepedia.com/User:Frisk#Contact) so I can do this for you. diff --git a/README.md b/README.md index 0229a06..9cf742f 100644 --- a/README.md +++ b/README.md @@ -38,9 +38,18 @@ Explanation for settings: ### How to use ### Make sure you have installed all of dependencies and **filled settings.json properly**. You can also use `pip install -r requirements.txt` to install dependencies automatically. If you are using Raspberry Pi you won't have newest Python version installed, you can use [this guide](https://gist.github.com/dschep/24aa61672a2092246eaca2824400d37f). When you are sure everything is fine, go to root directory with all of script files and use `python rcgcdw.py` or `python3 rcgcdw.py`command to run the script. +Here is how you can setup the script in just few commands on a Linux distribution. +```bash +$ git clone https://gitlab.com/piotrex43/RcGcDw.git +$ cd RcGcDw +$ pip3 install -r requirements.txt +$ nano config.json.example +$ mv config.json.example config.json +$ python3 rcgcdw.py +``` #### Free (?) hosting #### -If you want I can host the script for you for free. Just [contact me](https://minecraft.gamepedia.com/User:Frisk#Contact). If you want to go with this option, be aware that this is far from the best option, I host all of the scripts on my Raspberry PI, it can go down at any moment, I try to keep every script running, but obviously sometimes it's just not possible. So, choosing this option, don't expect 100% uptime. +If you want I can host the script for you for free. Just [contact me](https://minecraft.gamepedia.com/User:Frisk#Contact). If you want to go with this option, be aware that this is far from the best option, I host all of the scripts on my Raspberry PI, it can go down at any moment, I try to keep every script running, but obviously sometimes it's just not possible. So, choosing this option, don't expect 100% uptime. The only requirement if you want to go with this option, is that the wiki is somewhat active. ### Credits ### * I'd like to thank Minecraft Wiki English Discord server community, most notably Jack McKalling for input on how the script should work, especially formatting and what information should be there. @@ -58,3 +67,10 @@ Script does not log bot actions by default. ### License ### Everything except the locale directory is under GNU Affero General Public License v3.0 license. The translations are used with allowance of translators, and all rights to them are owned by their respective authors. + +### Currently running on ### +There are several Discord server, the script is already running on, you can join them and see it working. +[Minecraft Wiki English](https://discord.gg/fGdE5ZE) +[Minecraft Wiki (DE)](https://discord.gg/F75vfpd) (on a hidden channel) +[Minecraft Wiki Polska](https://discord.gg/9ZCcTnT) + diff --git a/locale/fr/LC_MESSAGES/rcgcdw.mo b/locale/fr/LC_MESSAGES/rcgcdw.mo index 1ab5f25..c81bd40 100644 Binary files a/locale/fr/LC_MESSAGES/rcgcdw.mo and b/locale/fr/LC_MESSAGES/rcgcdw.mo differ diff --git a/locale/fr/LC_MESSAGES/rcgcdw.po b/locale/fr/LC_MESSAGES/rcgcdw.po index f738ecc..95df0b8 100644 --- a/locale/fr/LC_MESSAGES/rcgcdw.po +++ b/locale/fr/LC_MESSAGES/rcgcdw.po @@ -5,43 +5,53 @@ msgid "" msgstr "" "Project-Id-Version: \n" -"POT-Creation-Date: 2018-06-21 23:24+0200\n" -"PO-Revision-Date: 2018-06-21 23:38+0200\n" -"Last-Translator: Frisk \n" +"POT-Creation-Date: 2018-06-23 17:33+0200\n" +"PO-Revision-Date: 2018-06-23 20:24+0200\n" +"Last-Translator: JSBM\n" "Language-Team: \n" -"Language: pl\n" +"Language: fr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Generated-By: pygettext.py 1.5\n" "X-Generator: Poedit 2.0.8\n" "X-Poedit-Basepath: ../../..\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" "X-Poedit-SearchPath-0: rcgcdw.pot\n" +#: rcgcdw.py:103 msgid "(N!) " msgstr "(N!) " +#: rcgcdw.py:103 msgid "m " msgstr "m " +#: rcgcdw.py:116 msgid "Uploaded a new version of {name}" msgstr "Téléversement d'une nouvelle version de {name}" +#: rcgcdw.py:117 msgid "([preview]({link}) | [undo]({undolink}))" msgstr "([Aperçu]({link}) | [Annuler]({undolink}))" +#: rcgcdw.py:117 rcgcdw.py:133 msgid "Options" msgstr "Options" +#: rcgcdw.py:119 msgid "Uploaded {name}" msgstr "Téléversement de {name}" +#: rcgcdw.py:126 msgid "**No license!**" msgstr "**Aucune license!**" +#: rcgcdw.py:133 msgid "([preview]({link}))" msgstr "([Aperçu]({link}))" +#: rcgcdw.py:134 msgid "" "{desc}\n" "License: {license}" @@ -49,221 +59,302 @@ msgstr "" "{desc}\n" "License: {license}" +#: rcgcdw.py:137 msgid "Deleted page {article}" msgstr "Suppresion de la page {article}" +#: rcgcdw.py:140 msgid "Deleted redirect {article} by overwriting" msgstr "Suppresion par écrasement de la redirection {article}" +#: rcgcdw.py:143 msgid "A redirect has been made" msgstr "Une redirection a été créée" +#: rcgcdw.py:143 msgid "No redirect has been made" msgstr "Aucune redirection créée" +#: rcgcdw.py:144 msgid "Moved {article} to {target}" msgstr "Déplacement de {article} vers {target}" +#: rcgcdw.py:147 msgid "Moved {article} to {title} over redirect" msgstr "Déplacement de {article} vers {title} par redirection" +#: rcgcdw.py:150 msgid "Moved protection settings from {article} to {title}" msgstr "Transfert des paramètres de protection de {article} vers {title}" +#: rcgcdw.py:154 msgid "infinity and beyond" msgstr "toujours" +#: rcgcdw.py:155 msgid "Blocked {blocked_user} for {time}" msgstr "{blocked user} a été bloqué pour {time}" +#: rcgcdw.py:159 msgid "Changed block settings for {blocked_user}" msgstr "Modification des paramètres de blocage pour {blocked_user}" +#: rcgcdw.py:163 msgid "Unblocked {blocked_user}" msgstr "{blocked_user} a été débloqué" +#: rcgcdw.py:167 msgid "Left a comment on {target}'s profile" msgstr "Ajout d'un commentaire sur le profil de {target}" +#: rcgcdw.py:171 msgid "Replied to a comment on {target}'s profile" msgstr "Réponse à un commentaire sur le profil de {target}" +#: rcgcdw.py:175 msgid "Edited a comment on {target}'s profile" msgstr "Édition d'un commentaire sur le profil de {target}" +#: rcgcdw.py:179 msgid "Location" msgstr "Emplacement" +#: rcgcdw.py:181 msgid "About me" msgstr "À propos de moi" +#: rcgcdw.py:183 msgid "Google link" msgstr "Lien Google" +#: rcgcdw.py:185 msgid "Facebook link" msgstr "Lien Facebook" +#: rcgcdw.py:187 msgid "Twitter link" msgstr "Lien Twitter" +#: rcgcdw.py:189 msgid "Reddit link" msgstr "Lien Reddit" +#: rcgcdw.py:191 msgid "Twitch link" msgstr "Lien Twitch" +#: rcgcdw.py:193 msgid "PSN link" msgstr "Lien PSN" +#: rcgcdw.py:195 msgid "VK link" msgstr "Lien VK" +#: rcgcdw.py:197 msgid "XVL link" msgstr "Lien XVL" +#: rcgcdw.py:199 msgid "Steam link" msgstr "Lien Steam" +#: rcgcdw.py:201 msgid "Unknown" msgstr "Inconnu" +#: rcgcdw.py:202 msgid "Edited {target}'s profile" msgstr "Modification du profil de {target}" +#: rcgcdw.py:203 msgid "{field} field changed to: {desc}" msgstr "{field} modifié pour: {desc}" +#: rcgcdw.py:207 msgid "Deleted a comment on {target}'s profile" msgstr "Retrait d'un commentaire sur le profil de {target}" +#: rcgcdw.py:210 msgid "Changed group membership for {target}" msgstr "Modification des groupes pour {target}" +#: rcgcdw.py:214 rcgcdw.py:216 msgid "none" msgstr "aucun" +#: rcgcdw.py:217 rcgcdw.py:311 msgid "No description provided" msgstr "Aucune description" +#: rcgcdw.py:218 msgid "Groups changed from {old_groups} to {new_groups} {reason}" msgstr "Groupe modifié de {old_groups} vers {new_groups}: {reason}" +#: rcgcdw.py:221 msgid "Protected {target}" msgstr "Protection de {target}" +#: rcgcdw.py:225 msgid "Changed protection level for {article}" msgstr "Modification du niveau de protection de {article}" +#: rcgcdw.py:229 msgid "Removed protection from {article}" msgstr "Retrait de la protection de {article}" +#: rcgcdw.py:232 msgid "Changed visibility of revision(s) on page {article} " msgstr "Modification de la visibilité de révision(s) sur la page {article} " +#: rcgcdw.py:235 msgid "Imported {article} with {count} revision(s)" msgstr "Article {article} importé avec {count} révision(s)" +#: rcgcdw.py:238 msgid "Restored {article}" msgstr "Restauration de {article}" +#: rcgcdw.py:241 msgid "Changed visibility of log events" msgstr "Modification de la visibilité d'évènements des journaux" +#: rcgcdw.py:244 msgid "Imported interwiki" msgstr "Importation d'interwiki" +#: rcgcdw.py:247 msgid "Edited abuse filter number {number}" msgstr "Édition de la règle {number} du filtre anti-abus" +#: rcgcdw.py:250 msgid "Merged revision histories of {article} into {dest}" msgstr "Fusion de l'historique de {article} vers {dest}" +#: rcgcdw.py:253 msgid "Added an entry to the interwiki table" msgstr "Ajout d'une entrée à la table interwiki" +#: rcgcdw.py:254 rcgcdw.py:258 msgid "Prefix: {prefix}, website: {website} | {desc}" msgstr "Préfixe: {prefix}, site: {website} | {desc}" +#: rcgcdw.py:257 msgid "Edited an entry in interwiki table" msgstr "Modification d'une entrée de la table interwiki" +#: rcgcdw.py:261 msgid "Deleted an entry in interwiki table" msgstr "Retrait d'une entrée de la table interwiki" +#: rcgcdw.py:262 msgid "Prefix: {prefix} | {desc}" msgstr "Préfixe: {prefix} | {desc}" +#: rcgcdw.py:265 msgid "Changed the content model of the page {article}" msgstr "Modification du modèle de contenu de l'article {article}" +#: rcgcdw.py:266 msgid "Model changed from {old} to {new}: {reason}" msgstr "Modèle changé de {old} à {new}: {reason}" +#: rcgcdw.py:269 msgid "Edited the sprite for {article}" msgstr "Édition du sprite de {article}" +#: rcgcdw.py:272 msgid "Created the sprite sheet for {article}" msgstr "Création d'une feuille de sprite pour {article}" +#: rcgcdw.py:275 msgid "Edited the slice for {article}" msgstr "" +#: rcgcdw.py:278 msgid "Created a tag \"{tag}\"" msgstr "Création du tag « {tag} »" +#: rcgcdw.py:281 msgid "Deleted a tag \"{tag}\"" msgstr "Suppression du tag « {tag} »" +#: rcgcdw.py:284 msgid "Activated a tag \"{tag}\"" msgstr "Activation du tag « {tag} »" +#: rcgcdw.py:287 msgid "Deactivated a tag \"{tag}\"" msgstr "Désactivation du tag « {tag} »" +#: rcgcdw.py:405 msgid "Unable to process the event" msgstr "Impossible d'analyser l'évènement" +#: rcgcdw.py:405 msgid "error" msgstr "erreur" +#: rcgcdw.py:485 msgid "Daily overview" -msgstr "" +msgstr "Résumé de la journée" +#: rcgcdw.py:508 rcgcdw.py:509 msgid "But nobody came" -msgstr "" +msgstr "Aucune activité" +#: rcgcdw.py:512 +msgid " ({} actions)" +msgstr "({} actions)" + +#: rcgcdw.py:512 msgid "Admin actions" msgstr "Actions d'administrateur" +#: rcgcdw.py:512 msgid "Bytes changed" msgstr "Octet modifié" +#: rcgcdw.py:512 msgid "Day score" msgstr "Score du jour" +#: rcgcdw.py:512 msgid "Edits made" msgstr "Modifications effectuées" +#: rcgcdw.py:512 msgid "Most active hours" -msgstr "-" +msgstr "Heures les plus actives" +#: rcgcdw.py:512 msgid "Most active users" -msgstr "-" +msgstr "Membres les plus actifs" +#: rcgcdw.py:512 msgid "New articles" msgstr "Nouveaux articles" +#: rcgcdw.py:512 msgid "New files" msgstr "Nouveaux fichiers" +#: rcgcdw.py:512 +msgid "UTC ({} actions)" +msgstr "UTC ({} actions)" + +#: rcgcdw.py:512 msgid "Unique contributors" msgstr "Contributeurs uniques" +#: rcgcdw.py:625 msgid "Connection status" msgstr "Statut de connexion" +#: rcgcdw.py:625 msgid "{wiki} seems to be down or unreachable." msgstr "{wiki} semble être down ou inatteignable." +#: rcgcdw.py:635 msgid "{wiki} is back up!" msgstr "{wiki} est de retour!" diff --git a/locale/pl/LC_MESSAGES/rcgcdw.mo b/locale/pl/LC_MESSAGES/rcgcdw.mo index 65f4327..413e609 100644 Binary files a/locale/pl/LC_MESSAGES/rcgcdw.mo and b/locale/pl/LC_MESSAGES/rcgcdw.mo differ diff --git a/locale/pl/LC_MESSAGES/rcgcdw.po b/locale/pl/LC_MESSAGES/rcgcdw.po index 9a0ea1b..3a4e6ed 100644 --- a/locale/pl/LC_MESSAGES/rcgcdw.po +++ b/locale/pl/LC_MESSAGES/rcgcdw.po @@ -5,8 +5,8 @@ msgid "" msgstr "" "Project-Id-Version: RcGcDw\n" -"POT-Creation-Date: 2018-06-21 23:24+0200\n" -"PO-Revision-Date: 2018-06-21 23:40+0200\n" +"POT-Creation-Date: 2018-06-23 17:32+0200\n" +"PO-Revision-Date: 2018-06-23 17:33+0200\n" "Last-Translator: Frisk \n" "Language-Team: \n" "Language: pl\n" @@ -234,6 +234,9 @@ msgstr "Podsumowanie dnia" msgid "But nobody came" msgstr "Ale nikt nie przyszedł" +msgid " ({} actions)" +msgstr "({} akcji)" + msgid "Admin actions" msgstr "Akcji administratorskich" @@ -258,6 +261,9 @@ msgstr "Nowych artykułów" msgid "New files" msgstr "Nowych plików" +msgid "UTC ({} actions)" +msgstr "UTC ({} akcji)" + msgid "Unique contributors" msgstr "Unikalnych edytujących" diff --git a/rcgcdw.pot b/rcgcdw.pot index a6efa9a..a36fc3d 100644 --- a/rcgcdw.pot +++ b/rcgcdw.pot @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" -"POT-Creation-Date: 2018-06-21 23:24+0200\n" +"POT-Creation-Date: 2018-06-23 17:33+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -15,251 +15,341 @@ msgstr "" "Generated-By: pygettext.py 1.5\n" +#: rcgcdw.py:103 msgid "(N!) " msgstr "" +#: rcgcdw.py:103 msgid "m " msgstr "" +#: rcgcdw.py:116 msgid "Uploaded a new version of {name}" msgstr "" +#: rcgcdw.py:117 msgid "([preview]({link}) | [undo]({undolink}))" msgstr "" +#: rcgcdw.py:117 rcgcdw.py:133 msgid "Options" msgstr "" +#: rcgcdw.py:119 msgid "Uploaded {name}" msgstr "" +#: rcgcdw.py:126 msgid "**No license!**" msgstr "" +#: rcgcdw.py:133 msgid "([preview]({link}))" msgstr "" +#: rcgcdw.py:134 msgid "" "{desc}\n" "License: {license}" msgstr "" +#: rcgcdw.py:137 msgid "Deleted page {article}" msgstr "" +#: rcgcdw.py:140 msgid "Deleted redirect {article} by overwriting" msgstr "" +#: rcgcdw.py:143 msgid "A redirect has been made" msgstr "" +#: rcgcdw.py:143 msgid "No redirect has been made" msgstr "" +#: rcgcdw.py:144 msgid "Moved {article} to {target}" msgstr "" +#: rcgcdw.py:147 msgid "Moved {article} to {title} over redirect" msgstr "" +#: rcgcdw.py:150 msgid "Moved protection settings from {article} to {title}" msgstr "" +#: rcgcdw.py:154 msgid "infinity and beyond" msgstr "" +#: rcgcdw.py:155 msgid "Blocked {blocked_user} for {time}" msgstr "" +#: rcgcdw.py:159 msgid "Changed block settings for {blocked_user}" msgstr "" +#: rcgcdw.py:163 msgid "Unblocked {blocked_user}" msgstr "" +#: rcgcdw.py:167 msgid "Left a comment on {target}'s profile" msgstr "" +#: rcgcdw.py:171 msgid "Replied to a comment on {target}'s profile" msgstr "" +#: rcgcdw.py:175 msgid "Edited a comment on {target}'s profile" msgstr "" +#: rcgcdw.py:179 msgid "Location" msgstr "" +#: rcgcdw.py:181 msgid "About me" msgstr "" +#: rcgcdw.py:183 msgid "Google link" msgstr "" +#: rcgcdw.py:185 msgid "Facebook link" msgstr "" +#: rcgcdw.py:187 msgid "Twitter link" msgstr "" +#: rcgcdw.py:189 msgid "Reddit link" msgstr "" +#: rcgcdw.py:191 msgid "Twitch link" msgstr "" +#: rcgcdw.py:193 msgid "PSN link" msgstr "" +#: rcgcdw.py:195 msgid "VK link" msgstr "" +#: rcgcdw.py:197 msgid "XVL link" msgstr "" +#: rcgcdw.py:199 msgid "Steam link" msgstr "" +#: rcgcdw.py:201 msgid "Unknown" msgstr "" +#: rcgcdw.py:202 msgid "Edited {target}'s profile" msgstr "" +#: rcgcdw.py:203 msgid "{field} field changed to: {desc}" msgstr "" +#: rcgcdw.py:207 msgid "Deleted a comment on {target}'s profile" msgstr "" +#: rcgcdw.py:210 msgid "Changed group membership for {target}" msgstr "" +#: rcgcdw.py:214 rcgcdw.py:216 msgid "none" msgstr "" +#: rcgcdw.py:217 rcgcdw.py:311 msgid "No description provided" msgstr "" +#: rcgcdw.py:218 msgid "Groups changed from {old_groups} to {new_groups} {reason}" msgstr "" +#: rcgcdw.py:221 msgid "Protected {target}" msgstr "" +#: rcgcdw.py:225 msgid "Changed protection level for {article}" msgstr "" +#: rcgcdw.py:229 msgid "Removed protection from {article}" msgstr "" +#: rcgcdw.py:232 msgid "Changed visibility of revision(s) on page {article} " msgstr "" +#: rcgcdw.py:235 msgid "Imported {article} with {count} revision(s)" msgstr "" +#: rcgcdw.py:238 msgid "Restored {article}" msgstr "" +#: rcgcdw.py:241 msgid "Changed visibility of log events" msgstr "" +#: rcgcdw.py:244 msgid "Imported interwiki" msgstr "" +#: rcgcdw.py:247 msgid "Edited abuse filter number {number}" msgstr "" +#: rcgcdw.py:250 msgid "Merged revision histories of {article} into {dest}" msgstr "" +#: rcgcdw.py:253 msgid "Added an entry to the interwiki table" msgstr "" +#: rcgcdw.py:254 rcgcdw.py:258 msgid "Prefix: {prefix}, website: {website} | {desc}" msgstr "" +#: rcgcdw.py:257 msgid "Edited an entry in interwiki table" msgstr "" +#: rcgcdw.py:261 msgid "Deleted an entry in interwiki table" msgstr "" +#: rcgcdw.py:262 msgid "Prefix: {prefix} | {desc}" msgstr "" +#: rcgcdw.py:265 msgid "Changed the content model of the page {article}" msgstr "" +#: rcgcdw.py:266 msgid "Model changed from {old} to {new}: {reason}" msgstr "" +#: rcgcdw.py:269 msgid "Edited the sprite for {article}" msgstr "" +#: rcgcdw.py:272 msgid "Created the sprite sheet for {article}" msgstr "" +#: rcgcdw.py:275 msgid "Edited the slice for {article}" msgstr "" +#: rcgcdw.py:278 msgid "Created a tag \"{tag}\"" msgstr "" +#: rcgcdw.py:281 msgid "Deleted a tag \"{tag}\"" msgstr "" +#: rcgcdw.py:284 msgid "Activated a tag \"{tag}\"" msgstr "" +#: rcgcdw.py:287 msgid "Deactivated a tag \"{tag}\"" msgstr "" +#: rcgcdw.py:405 msgid "Unable to process the event" msgstr "" +#: rcgcdw.py:405 msgid "error" msgstr "" +#: rcgcdw.py:485 msgid "Daily overview" msgstr "" +#: rcgcdw.py:508 rcgcdw.py:509 msgid "But nobody came" msgstr "" +#: rcgcdw.py:512 +msgid " ({} actions)" +msgstr "" + +#: rcgcdw.py:512 msgid "Admin actions" msgstr "" +#: rcgcdw.py:512 msgid "Bytes changed" msgstr "" +#: rcgcdw.py:512 msgid "Day score" msgstr "" +#: rcgcdw.py:512 msgid "Edits made" msgstr "" +#: rcgcdw.py:512 msgid "Most active hours" msgstr "" +#: rcgcdw.py:512 msgid "Most active users" msgstr "" +#: rcgcdw.py:512 msgid "New articles" msgstr "" +#: rcgcdw.py:512 msgid "New files" msgstr "" +#: rcgcdw.py:512 +msgid "UTC ({} actions)" +msgstr "" + +#: rcgcdw.py:512 msgid "Unique contributors" msgstr "" +#: rcgcdw.py:625 msgid "Connection status" msgstr "" +#: rcgcdw.py:625 msgid "{wiki} seems to be down or unreachable." msgstr "" +#: rcgcdw.py:635 msgid "{wiki} is back up!" msgstr ""