WIP: Added restoring corrupt TorrentPier files 🪛 (#1493)

* Added restoring corrupt files 🪛

* Update index.tpl

* Updated

* Updated

* Update build_files_integrity.php

* Update build_files_integrity.php

* Update build_files_integrity.php

* Updated

* Updater

* Update Updater.php

* Updated

* Update Updater.php

* Update build_check_updates.php

* Updated

* Updated

* Updated

* Update build_files_integrity.php

* Update build_files_integrity.php

* Updated

* Update checksums.md5

* Update build_files_integrity.php

* Updated

* Updated

* Update Updater.php

* Update CHANGELOG.md

* Updated

* Update index.tpl

* Update functions.php

* Update Updater.php
This commit is contained in:
Roman Kelesidis 2024-06-08 16:42:35 +07:00 committed by GitHub
commit 2cbf9ed743
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
12 changed files with 259 additions and 102 deletions

3
.gitignore vendored
View file

@ -2,6 +2,7 @@
.idea
### TorrentPier ###
*.integrity
.env
.php_cs.cache
composer.phar
@ -11,6 +12,7 @@ data/uploads
internal_data/atom
internal_data/cache
internal_data/log
internal_data/updater.json
sitemap
internal_data/triggers
library/config.local.php
@ -32,7 +34,6 @@ Desktop.ini
$RECYCLE.BIN/
*.lnk
*.bat
*.ver
### OSX ###
.DS_Store

View file

@ -6,6 +6,7 @@
**Merged pull requests:**
- Release 2.4.3 🐎 ([belomaxorka](https://github.com/belomaxorka))
- Added restoring corrupt TorrentPier files 🪛 [\#1493](https://github.com/torrentpier/torrentpier/pull/1493) ([belomaxorka](https://github.com/belomaxorka))
- Added TorrentPier files integrity check 📦 [\#1491](https://github.com/torrentpier/torrentpier/pull/1491) ([belomaxorka](https://github.com/belomaxorka))
- Added updates checker ⚙️ [\#1451](https://github.com/torrentpier/torrentpier/pull/1451), [\#1475](https://github.com/torrentpier/torrentpier/pull/1475) ([belomaxorka](https://github.com/belomaxorka))
- Added preview for country flags while editing [\#1448](https://github.com/torrentpier/torrentpier/pull/1448) ([belomaxorka](https://github.com/belomaxorka))
@ -23,7 +24,7 @@
- Code refactoring [\#1441](https://github.com/torrentpier/torrentpier/pull/1441) ([belomaxorka](https://github.com/belomaxorka))
- Minor improvements [\#1435](https://github.com/torrentpier/torrentpier/pull/1435), [\#1443](https://github.com/torrentpier/torrentpier/pull/1443), [\#1446](https://github.com/torrentpier/torrentpier/pull/1446), [\#1450](https://github.com/torrentpier/torrentpier/pull/1450), [\#1452](https://github.com/torrentpier/torrentpier/pull/1452), [\#1458](https://github.com/torrentpier/torrentpier/pull/1458), [\#1461](https://github.com/torrentpier/torrentpier/pull/1461), [\#1462](https://github.com/torrentpier/torrentpier/pull/1462), [\#1467](https://github.com/torrentpier/torrentpier/pull/1467), [\#1469](https://github.com/torrentpier/torrentpier/pull/1469), [\#1472](https://github.com/torrentpier/torrentpier/pull/1472), [\#1477](https://github.com/torrentpier/torrentpier/pull/1477), [\#1480](https://github.com/torrentpier/torrentpier/pull/1480), [\#1481](https://github.com/torrentpier/torrentpier/pull/1481), [\#1482](https://github.com/torrentpier/torrentpier/pull/1482), [\#1484](https://github.com/torrentpier/torrentpier/pull/1484), [\#1490](https://github.com/torrentpier/torrentpier/pull/1490) ([belomaxorka](https://github.com/belomaxorka))
- Updated deps [\#1454](https://github.com/torrentpier/torrentpier/pull/1454), [\#1455](https://github.com/torrentpier/torrentpier/pull/1455), [\#1459](https://github.com/torrentpier/torrentpier/pull/1459), [\#1460](https://github.com/torrentpier/torrentpier/pull/1460), [\#1485](https://github.com/torrentpier/torrentpier/pull/1485), [\#1486](https://github.com/torrentpier/torrentpier/pull/1486) ([belomaxorka](https://github.com/belomaxorka))
- New Crowdin updates [\#1444](https://github.com/torrentpier/torrentpier/pull/1444), [\#1447](https://github.com/torrentpier/torrentpier/pull/1447), [\#1453](https://github.com/torrentpier/torrentpier/pull/1453), [\#1468](https://github.com/torrentpier/torrentpier/pull/1468), [\#1473](https://github.com/torrentpier/torrentpier/pull/1473), [\#1476](https://github.com/torrentpier/torrentpier/pull/1476), [\#1479](https://github.com/torrentpier/torrentpier/pull/1479), [\#1487](https://github.com/torrentpier/torrentpier/pull/1487), [\#1489](https://github.com/torrentpier/torrentpier/pull/1489) ([Exileum](https://github.com/Exileum))
- New Crowdin updates [\#1444](https://github.com/torrentpier/torrentpier/pull/1444), [\#1447](https://github.com/torrentpier/torrentpier/pull/1447), [\#1453](https://github.com/torrentpier/torrentpier/pull/1453), [\#1468](https://github.com/torrentpier/torrentpier/pull/1468), [\#1473](https://github.com/torrentpier/torrentpier/pull/1473), [\#1476](https://github.com/torrentpier/torrentpier/pull/1476), [\#1479](https://github.com/torrentpier/torrentpier/pull/1479), [\#1487](https://github.com/torrentpier/torrentpier/pull/1487), [\#1489](https://github.com/torrentpier/torrentpier/pull/1489), [\#1492](https://github.com/torrentpier/torrentpier/pull/1492) ([Exileum](https://github.com/Exileum))
## [v2.4.2](https://github.com/torrentpier/torrentpier/tree/v2.4.2) (2024-03-30)
[Full Changelog](https://github.com/torrentpier/torrentpier/compare/v2.4.1...v2.4.2)

View file

@ -1,6 +1,6 @@
a587180b840ddbd809d484d6a497be3e .editorconfig
77b639eaef6fcc2f75a7b99f906a60f1 .env.example
72bc6ae0772cb940c151e790503d09d3 .gitignore
5dda34994909cd099e6848ebf283a725 .gitignore
c7bd24be3c35a20f1fc7f03ee500c849 .htaccess
ca196b40306c9829c96ba5edc5e80ee4 .styleci.yml
16d7f6b952d2ea18fe0abd48f9bdfb92 CHANGELOG.md
@ -83,14 +83,14 @@ d41d8cd98f00b204e9800998ecf8427e data/uploads/thumbs/.keep
62745e850958bfd8a1fd77f90e74184b install/.htaccess
284795548f4c042db7dbd37fe1ead8fd install/sql/mysql.sql
f22be8fd0ca8b91c1203e1d40276015b install/sql/ocelot.sql
1c28753de58f610fa9f5112da996fa66 internal_data/checksums.md5
9b55211a51a9fa126013c789b747c45f internal_data/checksums.md5
d41d8cd98f00b204e9800998ecf8427e internal_data/atom/.keep
62745e850958bfd8a1fd77f90e74184b internal_data/cache/.htaccess
62745e850958bfd8a1fd77f90e74184b internal_data/log/.htaccess
d41d8cd98f00b204e9800998ecf8427e internal_data/triggers/$on
62745e850958bfd8a1fd77f90e74184b internal_data/triggers/.htaccess
e4ef31082e02a4fb6785527facf617c5 library/config.php
f4df6a2c1a9c830ca58ea53ba4fca034 library/defines.php
1bd64b41a1fc959c14c059c12a3915ae library/defines.php
14bb972e01150ce90e37a280799b0312 library/ajax/avatar.php
f154996cc002dfa9cb253b33b3ba5915 library/ajax/callseed.php
b80a4f5d0e2a273b35e194f6aa2b5bb8 library/ajax/change_tor_status.php
@ -101,7 +101,7 @@ ea494adcae0fe6c9d30296627cc0dfb2 library/ajax/edit_group_profile.php
5bde8d4d4c901daabdd35a96a9972d59 library/ajax/edit_user_profile.php
4bdddb189c4b5ebe8cf117e0e8c39502 library/ajax/group_membership.php
430cb26bf0007d8986cc37cea6295c29 library/ajax/index_data.php
c9fa8af41a4a2b13829c93d12aa71583 library/ajax/manage_admin.php
b206eaa54d57597a1406b5614c1296ca library/ajax/manage_admin.php
a720b7192f4071cc240c0d761ce6e5c2 library/ajax/manage_user.php
37eb1a93757d6c93ecffcaf2b663c0df library/ajax/mod_action.php
1c770be060160527c91f7c34d71ac946 library/ajax/passkey.php
@ -163,8 +163,8 @@ fc508d151199c26c5aaef14374325d4c library/includes/cron/jobs/update_forums_atom.
0887b85beaa1abbbe92656f405af9a65 library/includes/datastore/build_attach_extensions.php
b797a078726c99dee38109af6464c99d library/includes/datastore/build_bans.php
d127f7a04e28bbaec862d9f060036d67 library/includes/datastore/build_cat_forums.php
4c276986523aed1764e9a45196906fe1 library/includes/datastore/build_check_updates.php
7cf9cce1f3581940684ee8e0632f11a9 library/includes/datastore/build_files_integrity.php
6a7b0ac5609d3c629b580e4cf5a71f74 library/includes/datastore/build_check_updates.php
e099da9d244d61de615f97b2f7fa4ed7 library/includes/datastore/build_files_integrity.php
7643e43da69353fe2dbf46b1b22b572c library/includes/datastore/build_moderators.php
dd7b6ee11512214f5ff074af38f0c264 library/includes/datastore/build_ranks.php
7e82aa5f7767f941c082ad8f8d702e00 library/includes/datastore/build_smilies.php
@ -177,7 +177,7 @@ edfb569a6753ab56168a1e89b1980fa2 library/includes/ucp/sendpasswd.php
b4a20602474c8401abddf3956b70fff1 library/includes/ucp/topic_watch.php
c9276ffd291d95abd533abc7691446db library/includes/ucp/viewprofile.php
f9fa8d076453d5e0e571eae07f6eea52 library/includes/ucp/viewtorrent.php
1d92840899fc69302320d33392327660 library/language/af/main.php
9cf5ebe0451b3139acb32dcb6acd71a8 library/language/af/main.php
d5296871bcd87b4b63282ab39adb1e95 library/language/af/email/admin_send_email.html
a7d99cd8e0fc5edcea26ad250c3552b0 library/language/af/email/blank.html
1fff1b68aec9c7a904e61212f43c03f0 library/language/af/email/group_added.html
@ -196,7 +196,7 @@ e236b59b8741d8c01ec99fd469e89bf3 library/language/af/email/user_welcome_inactiv
1a1cc8023f5debf45e36984dd8cb1263 library/language/af/html/sidebar1.html
2ab652f0df01da43de1cd8ef9842e270 library/language/af/html/sidebar2.html
2cda09eaa6ae9013b185489ebe767814 library/language/af/html/user_agreement.html
6926568263fd70f1a4e72e7ba1337b50 library/language/ar/main.php
f42ee56888dbf170e4bca1cb9cec214c library/language/ar/main.php
fa521d2c2157552091a553aaec36dd6f library/language/ar/email/admin_send_email.html
a7d99cd8e0fc5edcea26ad250c3552b0 library/language/ar/email/blank.html
43e96b28acf99b4b7120d7ce19502950 library/language/ar/email/group_added.html
@ -215,7 +215,7 @@ f3f1133a129b25444951c0327d446848 library/language/ar/html/copyright_holders.htm
419cae345f18e51b0ebc340420d7054b library/language/ar/html/sidebar1.html
2f6a89bbd0b68cd4bc88d5b505d464dd library/language/ar/html/sidebar2.html
143bbe4fdd8a6ab52437a3a25ac150a3 library/language/ar/html/user_agreement.html
c97b5c7b3afa4779b801fad3d8a26ee3 library/language/az/main.php
298cb54cafd28e8c2eccaf93d6475e61 library/language/az/main.php
86864d262873ce97aafa166f21816e36 library/language/az/email/admin_send_email.html
a7d99cd8e0fc5edcea26ad250c3552b0 library/language/az/email/blank.html
dd80eef9f4ae2645d8e9241217f56305 library/language/az/email/group_added.html
@ -234,7 +234,7 @@ e92b30e3f68b9a4c91591ac5a15a0812 library/language/az/html/copyright_holders.htm
63241c2dfc3eb13353faf2b24d1eb84b library/language/az/html/sidebar1.html
3dbe45cccbc81ff0e3de4c122ccc4a71 library/language/az/html/sidebar2.html
5063c10f8ff0b82006756e67f66cd7ac library/language/az/html/user_agreement.html
7a86acba7684125c65c4204468f2e4ae library/language/be/main.php
5724e47890b81250e091a368337750bd library/language/be/main.php
9b2ba7b5ebcd333f2b822fc7044f5bcb library/language/be/email/admin_send_email.html
a7d99cd8e0fc5edcea26ad250c3552b0 library/language/be/email/blank.html
4bae4a646586b292928b006a0bf5432c library/language/be/email/group_added.html
@ -253,7 +253,7 @@ db21ab7a6caacf8b252cde9c71445e4d library/language/be/html/copyright_holders.htm
c5c25d3ed02a42fc680ce0c9e31d9833 library/language/be/html/sidebar1.html
e5cd1e96f4ff1d3b125af6e58463af83 library/language/be/html/sidebar2.html
d02d7d72bdde232e71a2682bd6db62c1 library/language/be/html/user_agreement.html
81c8d15b125d458672d763ed08148d71 library/language/bg/main.php
7cf7d0b5356f95c8e28439d7c8809a5e library/language/bg/main.php
82ae13a7c21b8ee69f022165f63bcccf library/language/bg/email/admin_send_email.html
a7d99cd8e0fc5edcea26ad250c3552b0 library/language/bg/email/blank.html
72e0f97341e3dbb98860c2fad79a324b library/language/bg/email/group_added.html
@ -272,7 +272,7 @@ b569ecb5d53580f5c69a11f8a9e930e1 library/language/bg/html/advert.html
c38a63ddc15f3fae33bd6f5d548e7cd1 library/language/bg/html/sidebar1.html
c26acd4e7e6bfb4b3ea9aa6afe1365c6 library/language/bg/html/sidebar2.html
fb05ff5570f39272788c5ab5f1d00377 library/language/bg/html/user_agreement.html
567f6d0ec29633ac8212a82de56e400f library/language/bs/main.php
dd26c755357ab3d892b080375ff39097 library/language/bs/main.php
e3fca85d3774a0c2e801376be90ae7e8 library/language/bs/email/admin_send_email.html
a7d99cd8e0fc5edcea26ad250c3552b0 library/language/bs/email/blank.html
c1e0c28fbfd6e2239db44a17a745fa82 library/language/bs/email/group_added.html
@ -291,7 +291,7 @@ bb507442da349d94ff69dd17f9e50501 library/language/bs/html/not_found.html
eba4312d0f40171a1c0b769c84a5b3e3 library/language/bs/html/sidebar1.html
c0506bffc50a613839c5ace0375bab15 library/language/bs/html/sidebar2.html
f5f953bd843617d911b51c2edc628eb8 library/language/bs/html/user_agreement.html
be0ceae6df9dcd2ed78ff609e34ec0af library/language/ca/main.php
d5ea0548d61a827f7fd0dbf2256dd3c0 library/language/ca/main.php
c988c0fa1f3cbfdcdd2f31697ce08446 library/language/ca/email/admin_send_email.html
a7d99cd8e0fc5edcea26ad250c3552b0 library/language/ca/email/blank.html
f6655bb55af5684a9b20e0f2a765bdcc library/language/ca/email/group_added.html
@ -310,7 +310,7 @@ d842cc53d1a7396fe9689aaff1db81f9 library/language/ca/html/copyright_holders.htm
e1a3441aa24f19e520920a2f6e783dc7 library/language/ca/html/sidebar1.html
ef561114e5c474d8b4670013c3856132 library/language/ca/html/sidebar2.html
c9c6e1ca49a8ccf794a252c20193e381 library/language/ca/html/user_agreement.html
1af3f90d07b655d943431044c333ac43 library/language/cs/main.php
5e7bf08421be2a61d84370a8e9335c39 library/language/cs/main.php
a6172e22acc9c1c578af12d7d30cf9d0 library/language/cs/email/admin_send_email.html
a7d99cd8e0fc5edcea26ad250c3552b0 library/language/cs/email/blank.html
7f485b624d5c01fda272b6172ba6df03 library/language/cs/email/group_added.html
@ -329,7 +329,7 @@ a8a903afdbdb8573d47b61b9e39bd434 library/language/cs/html/advert.html
a5888c87a5c682036243f8c6f8f02fa8 library/language/cs/html/sidebar1.html
c85ae20c41caf7ff4e304903f971a5ae library/language/cs/html/sidebar2.html
0512716b8b9c7585bb579c81246a0066 library/language/cs/html/user_agreement.html
2eaaec717e08c49d586eb657cbc52191 library/language/da/main.php
7bd640d5cd8ae3f8da91ecfb3bf3f92c library/language/da/main.php
08183a66ce81c5f02e4b103285acac4c library/language/da/email/admin_send_email.html
a7d99cd8e0fc5edcea26ad250c3552b0 library/language/da/email/blank.html
9e2616bffb8b80f94974080736953cd7 library/language/da/email/group_added.html
@ -348,7 +348,7 @@ c81c5d0cedb426f978957b834de68c8b library/language/da/html/copyright_holders.htm
cb40fcef19c703459631c80785b31c32 library/language/da/html/sidebar1.html
91b6f838ee872289580b78505a03838e library/language/da/html/sidebar2.html
7b7cc26df7a6c2263bd45b95553df69d library/language/da/html/user_agreement.html
a9b11016a2cc14c58675bd4533fa6c81 library/language/de/main.php
145ebe508bced866bff7692cc36c0846 library/language/de/main.php
3019ff68daf2326f06536d4ff1079345 library/language/de/email/admin_send_email.html
a7d99cd8e0fc5edcea26ad250c3552b0 library/language/de/email/blank.html
694f61b664603ee3cda07269f166b6e6 library/language/de/email/group_added.html
@ -367,7 +367,7 @@ dffa36be5d1c6250a93fd41a67c40a28 library/language/de/html/copyright_holders.htm
795139660ac65dfc4067ba5e47731e10 library/language/de/html/sidebar1.html
998e5f2563ecdec12e0627e03ab3f1bd library/language/de/html/sidebar2.html
46d020f9803245675585841db9458307 library/language/de/html/user_agreement.html
a1e55fe5fc6e122e94e371f0ab1d5311 library/language/el/main.php
b0c62788763316cdd6a206fe33988674 library/language/el/main.php
574ce916932062b0ac917166be8adc1f library/language/el/email/admin_send_email.html
a7d99cd8e0fc5edcea26ad250c3552b0 library/language/el/email/blank.html
da343371dfc03ae4cf6386325b345840 library/language/el/email/group_added.html
@ -386,7 +386,7 @@ b7a38619c436c7607e5bf55fba8c1e86 library/language/el/html/not_found.html
3b53900a88c05a5f747fb64096732439 library/language/el/html/sidebar1.html
297dd233fe1e867bf0fe681401895400 library/language/el/html/sidebar2.html
f0a68f1dd0d68c0af61955329eeb18f8 library/language/el/html/user_agreement.html
a7e513cad459dc89e5c4eadf0eaa3fb2 library/language/en/main.php
8b6784bc7e02159c6b8cc0991c4d29e1 library/language/en/main.php
43ace478369536d757ecb52682ece0ef library/language/en/email/admin_send_email.html
a7d99cd8e0fc5edcea26ad250c3552b0 library/language/en/email/blank.html
184658cb8e493afa7458eff0e27f470e library/language/en/email/group_added.html
@ -405,7 +405,7 @@ b6caa4c7d5062292c26a014b4b39389c library/language/en/html/copyright_holders.htm
1cd0360bd6153169750417809cb44669 library/language/en/html/sidebar1.html
ff0881e90bec102d05a9bc85461a923a library/language/en/html/sidebar2.html
41f1ab5db4ea0f10c14adf27decb7392 library/language/en/html/user_agreement.html
01beb3969f8329b2013e23f911cfb52f library/language/es/main.php
daeea8ff4eb924f06f77f0e31365c90b library/language/es/main.php
dd0e9d58fae13ea1dade165b97acf76b library/language/es/email/admin_send_email.html
a7d99cd8e0fc5edcea26ad250c3552b0 library/language/es/email/blank.html
3fcb4eae1a0c83f0672772a4ebe3d09a library/language/es/email/group_added.html
@ -424,7 +424,7 @@ ba75f6853f8f36ecbcfe4ca8ed43cd84 library/language/es/html/not_found.html
e2e049e6bb310b2a67e82e91e72b0445 library/language/es/html/sidebar1.html
64767d5db29ae3c2c0709a9a8f423718 library/language/es/html/sidebar2.html
632c401229e1c38f41a6394e2fe717cf library/language/es/html/user_agreement.html
874a3d4847baabd95f98ddbed962e376 library/language/et/main.php
66e3a8377750d2a940ac1cab106cf469 library/language/et/main.php
20b34904358dc4e8d27b1693be5c6450 library/language/et/email/admin_send_email.html
a7d99cd8e0fc5edcea26ad250c3552b0 library/language/et/email/blank.html
52dc29bb260d4b6063ac27eb497d8bbc library/language/et/email/group_added.html
@ -443,7 +443,7 @@ bbcf9bfd6b6b6c017b6bc5459b35dcef library/language/et/html/not_found.html
2f931b3a9673166acae56acd3a684a5a library/language/et/html/sidebar1.html
953857faa36f03fc16f0e61cd93af8fd library/language/et/html/sidebar2.html
5bf599226d357a2c44ef130559f2380a library/language/et/html/user_agreement.html
7d8590016ab9ef90addd0cb7dd7da098 library/language/fi/main.php
26729318f093987d2d3c42c2e4c72bbb library/language/fi/main.php
6f734b8866c2821b6a7704b21d0e5426 library/language/fi/email/admin_send_email.html
a7d99cd8e0fc5edcea26ad250c3552b0 library/language/fi/email/blank.html
ffb7654f707ace39f2c65e8dba9d60c9 library/language/fi/email/group_added.html
@ -462,7 +462,7 @@ ba5f17c70cfe64d75c426938b343e1c9 library/language/fi/html/copyright_holders.htm
2ec13c27fb4a2349225d20409a0b9b8e library/language/fi/html/sidebar1.html
3fa9a0fa142031af68587cae01928639 library/language/fi/html/sidebar2.html
1542ed93b76e1484397d6bf322e26b78 library/language/fi/html/user_agreement.html
288851d9d794cda706b1522ebdc83527 library/language/fr/main.php
e40ef7fb2e1ae5f6932d1beabf621e27 library/language/fr/main.php
30ae50f5ad9d72377db5aee6811dc835 library/language/fr/email/admin_send_email.html
a7d99cd8e0fc5edcea26ad250c3552b0 library/language/fr/email/blank.html
7f0a7ea450b507cf6d71eb8a9d22f09b library/language/fr/email/group_added.html
@ -481,7 +481,7 @@ d474b57e1ee44cf90b523b82096407e2 library/language/fr/html/not_found.html
9be9ba4ab88e2df5db6386ae6f7bb4ed library/language/fr/html/sidebar1.html
3ae3860b494855728d786683f11c9671 library/language/fr/html/sidebar2.html
a9c8e675ed3ac2ec90f2a65ae7283b02 library/language/fr/html/user_agreement.html
fc09ae04b5393f9897bc65ee9082b0bd library/language/he/main.php
e7b887469cb83bf4ab7c86e2168762e8 library/language/he/main.php
f2880e58e3ed3070d67375ff59121b80 library/language/he/email/admin_send_email.html
a7d99cd8e0fc5edcea26ad250c3552b0 library/language/he/email/blank.html
714959c1353a02a04b6b89165be7fe28 library/language/he/email/group_added.html
@ -500,7 +500,7 @@ c823e1276e300d688ba13f761589bb12 library/language/he/html/copyright_holders.htm
948036fdec2142982b33f006db6f4f6f library/language/he/html/sidebar1.html
6b960526043d13bd9c81183ec88d8c2d library/language/he/html/sidebar2.html
c936fa29815dcb0bd3f73cf62c760bfb library/language/he/html/user_agreement.html
55e52967cbac2dd96003a0602e939090 library/language/hi/main.php
8f884c559035af8ee9ded74a8e2d5da6 library/language/hi/main.php
111fd15407b0a332f826d8725ef97da2 library/language/hi/email/admin_send_email.html
a7d99cd8e0fc5edcea26ad250c3552b0 library/language/hi/email/blank.html
2b3e6338a411203f96f881baf3326bd9 library/language/hi/email/group_added.html
@ -519,7 +519,7 @@ f0279545cc919e24a3178c18a78396cc library/language/hi/html/not_found.html
eb21ea818d08048716b2f47687774284 library/language/hi/html/sidebar1.html
40278dc1cd185a1c35846f4238f20d99 library/language/hi/html/sidebar2.html
a5a7e72316cdd9387bcf481369a4b852 library/language/hi/html/user_agreement.html
1ce4cd4f6b880dde91b9c67387b48c1d library/language/hr/main.php
db0d25c3a4a57f906407a3d191f1234b library/language/hr/main.php
3faf52a453b5ed66d4093c32c1d59ca8 library/language/hr/email/admin_send_email.html
a7d99cd8e0fc5edcea26ad250c3552b0 library/language/hr/email/blank.html
5f4db86e9c26958473782080f0107170 library/language/hr/email/group_added.html
@ -538,7 +538,7 @@ e5eb5e842ae50c7f1272a8dc51e3040a library/language/hr/html/advert.html
edec75afedf408222ce68855924a1c82 library/language/hr/html/sidebar1.html
ba7df0e4c2002ecf50df5a0ff04a5355 library/language/hr/html/sidebar2.html
d0dee4c7a121640039369fe526d33105 library/language/hr/html/user_agreement.html
007fbd9cc543a5ed3e9faa2d57753cc6 library/language/hu/main.php
93e095fcfaf5898315221244e57d596d library/language/hu/main.php
2c6e3349c2431cbf98dea302b0db5e43 library/language/hu/email/admin_send_email.html
a7d99cd8e0fc5edcea26ad250c3552b0 library/language/hu/email/blank.html
444cb6749e377dcd5952442612428741 library/language/hu/email/group_added.html
@ -557,7 +557,7 @@ c28bfd98f40716e49dbcdcd592a46a6d library/language/hu/email/user_welcome_inactiv
f4ef5198ffaf401419ea1695ffb24cbd library/language/hu/html/sidebar1.html
acdc564938eddc1fe42b42ccbf20c058 library/language/hu/html/sidebar2.html
0e16e7918b363fc71bb7f242eddc1d10 library/language/hu/html/user_agreement.html
39b4a99a92c3d88b352368e8d61ee847 library/language/hy/main.php
4524090cb09793f4818cab721d8de601 library/language/hy/main.php
e6033d17cb04dd9e0093f86e3e8bedec library/language/hy/email/admin_send_email.html
a7d99cd8e0fc5edcea26ad250c3552b0 library/language/hy/email/blank.html
b1ba390f723d3e01830ca8235db35c34 library/language/hy/email/group_added.html
@ -576,7 +576,7 @@ d6090afaebd77b727dee53b88a73ed3a library/language/hy/email/user_activate.html
d63d0533c24539813596634906b4b884 library/language/hy/html/sidebar1.html
e7e8998dba4ad85d97af17cced6691ef library/language/hy/html/sidebar2.html
2be0fff1ee6b770e68f3eddaee0ce628 library/language/hy/html/user_agreement.html
fd3f4ec3e7e4164177f9b46d93d52eb9 library/language/id/main.php
916778922c740ec0d6e45669e12b9efa library/language/id/main.php
d365136686a86f0d625cb30e2bfe7626 library/language/id/email/admin_send_email.html
a7d99cd8e0fc5edcea26ad250c3552b0 library/language/id/email/blank.html
36e5a2ee718e77a3790ce87d51f4c691 library/language/id/email/group_added.html
@ -595,7 +595,7 @@ c5a4dcdb7d9868dd77a81746997dbd31 library/language/id/html/not_found.html
4f5f614aab8625ad5dd25643b7df58a7 library/language/id/html/sidebar1.html
37f91cd2e67e99e374efff27eaf8b6a8 library/language/id/html/sidebar2.html
85a478a3086a618ffae915e87b0ebe1f library/language/id/html/user_agreement.html
959100764e2896a712616cbc3eb97361 library/language/it/main.php
e5ccc4e88aa40fe4d3afd4f192ff3cc3 library/language/it/main.php
0da45ac52e067ad94172be603534c055 library/language/it/email/admin_send_email.html
a7d99cd8e0fc5edcea26ad250c3552b0 library/language/it/email/blank.html
2b20a5dab228c950b26686ed481f884e library/language/it/email/group_added.html
@ -614,7 +614,7 @@ e854d0bd9a666613e7ac25d29090e25f library/language/it/html/not_found.html
02dd36f064c8cba2dc1cd643c022ec9f library/language/it/html/sidebar1.html
09876702b62929ae10d15304e115f90c library/language/it/html/sidebar2.html
0325051dde5e5be79834b1700b8a47db library/language/it/html/user_agreement.html
dd40b2037af0f6abf80ddbe30f2d139c library/language/ja/main.php
30356ae98dcf394dab3f761e044d84e2 library/language/ja/main.php
b3493ffe8be4fc601a0b61fc300791f2 library/language/ja/email/admin_send_email.html
a7d99cd8e0fc5edcea26ad250c3552b0 library/language/ja/email/blank.html
21c9003efe359333c9dde9ca2e9f4570 library/language/ja/email/group_added.html
@ -633,7 +633,7 @@ cf11467d145d136e1f818aea3cf20104 library/language/ja/email/user_welcome_inactiv
402696c793a5c4123ce6c8d72297d4cf library/language/ja/html/sidebar1.html
6f125ae9dd1b88fd2f5cb0593e58502e library/language/ja/html/sidebar2.html
8cda16a0ba28df167ad4e5cba2966b8b library/language/ja/html/user_agreement.html
f37f245c92c3b3fe447ab6892f4e49b9 library/language/ka/main.php
007e4af26d1097d53552dceacc9e0fd8 library/language/ka/main.php
32e55ff6a03cad32f8c688434885dcd6 library/language/ka/email/admin_send_email.html
a7d99cd8e0fc5edcea26ad250c3552b0 library/language/ka/email/blank.html
cea67a721713a72f0340d227e462403a library/language/ka/email/group_added.html
@ -652,7 +652,7 @@ ce7d27497792e1eac08bd32c46a7c47a library/language/ka/html/not_found.html
b3947ecb8ff4930e19ec12863b6eccd2 library/language/ka/html/sidebar1.html
d918155afce78c28bb59fb43022369ae library/language/ka/html/sidebar2.html
5a58cfbb0d539fa40de692fdae54e813 library/language/ka/html/user_agreement.html
e8e7bc7dfa80ea46b59cb577e7f6244c library/language/kk/main.php
ea4db1d775acee7ceb4e9eb87f7810f9 library/language/kk/main.php
4f97d9ee5905d907c796c2052109780c library/language/kk/email/admin_send_email.html
a7d99cd8e0fc5edcea26ad250c3552b0 library/language/kk/email/blank.html
08104e972b897f26d15707de0a56be12 library/language/kk/email/group_added.html
@ -671,7 +671,7 @@ dee4de13be0193cc49308035c7934c01 library/language/kk/html/not_found.html
8e35fd6955d91c2f57a8573a35097847 library/language/kk/html/sidebar1.html
5fc41f7cfb5e69559e2ea364f5751de1 library/language/kk/html/sidebar2.html
8ff699565723ce3156b9c96122891d27 library/language/kk/html/user_agreement.html
a64f6fee1c3c621e626afdc64462d57b library/language/ko/main.php
bdb71c18cb21c17db923a9b69b5033ed library/language/ko/main.php
5b7853fdd5968990ddb8c31e91030e31 library/language/ko/email/admin_send_email.html
a7d99cd8e0fc5edcea26ad250c3552b0 library/language/ko/email/blank.html
6d4ca2541797aed747c0fc0c7fb8b354 library/language/ko/email/group_added.html
@ -690,7 +690,7 @@ d5827e89d609f2aea64857deccf5bc19 library/language/ko/html/copyright_holders.htm
502b4ace55acd75cf7675ce39491b3d3 library/language/ko/html/sidebar1.html
e131a3a2dfb8fb823a3c50c610fe2266 library/language/ko/html/sidebar2.html
f4e442d21a37216a55f1439e493af3df library/language/ko/html/user_agreement.html
3c9b5e5f08094793a0f8d297f5e75c7c library/language/lt/main.php
4500ab9547ba667b383321ac03c3b719 library/language/lt/main.php
a645f00cc56120a7e1f19415be547e79 library/language/lt/email/admin_send_email.html
a7d99cd8e0fc5edcea26ad250c3552b0 library/language/lt/email/blank.html
97ff999aec851e8131b611a4409491ad library/language/lt/email/group_added.html
@ -709,7 +709,7 @@ c0bb40fbeb9bc3bb498bcae7263aa029 library/language/lt/html/not_found.html
b3987611a0520d11296111bff5f654a1 library/language/lt/html/sidebar1.html
4c938478ba0a40d9101f47c070c1f736 library/language/lt/html/sidebar2.html
6dc537d1a561d8ff681b3df03b79f294 library/language/lt/html/user_agreement.html
e2522cce1c0ecd907bab4a1ebd5628cd library/language/lv/main.php
0d1f14340ad8e42552509deeef6e78c2 library/language/lv/main.php
621b46c27cef8b8668d06f721e1cddd8 library/language/lv/email/admin_send_email.html
a7d99cd8e0fc5edcea26ad250c3552b0 library/language/lv/email/blank.html
a4a083e300685bb9c1ff03f057adca7a library/language/lv/email/group_added.html
@ -728,7 +728,7 @@ ed84c307cadd772acb447beef08def9a library/language/lv/html/advert.html
882a7a864f24c4ff31958f2ae746c5ad library/language/lv/html/sidebar1.html
346c8277ba76216b4feb48b85e739be2 library/language/lv/html/sidebar2.html
d510494f6029c6f041d4bf7359d6034b library/language/lv/html/user_agreement.html
9ce57954240702a6577da8fe5114786b library/language/nl/main.php
10e782192f72cff1e260633b5091e91c library/language/nl/main.php
a25df8e1c8334031c2bcbc7691ce481a library/language/nl/email/admin_send_email.html
a7d99cd8e0fc5edcea26ad250c3552b0 library/language/nl/email/blank.html
209ed57a9d2ef48cbbbaa18b50057bc4 library/language/nl/email/group_added.html
@ -747,7 +747,7 @@ f52e6d64966155e222edea6667700ee0 library/language/nl/html/not_found.html
1a0642e8d70a5ced70a62e073487f4fc library/language/nl/html/sidebar1.html
6fffe94548d6bb49f322dfca381510c1 library/language/nl/html/sidebar2.html
e83cb02bb464c66332f59847704758a8 library/language/nl/html/user_agreement.html
9307e616658341a6a4b5ec4e1ca76f98 library/language/no/main.php
c052bf84cd0dc973b593816d969fb6a6 library/language/no/main.php
28e732db4eb2935dc96f6625746bdf45 library/language/no/email/admin_send_email.html
a7d99cd8e0fc5edcea26ad250c3552b0 library/language/no/email/blank.html
a743e747e07811273df9c3a78055455b library/language/no/email/group_added.html
@ -766,7 +766,7 @@ b4bd540f4654c832f892a5981a9aa94f library/language/no/html/not_found.html
50e84fc10037f10fb3633258d2704f5d library/language/no/html/sidebar1.html
c6f6dc41809fe29d0525ea45c8e64e5b library/language/no/html/sidebar2.html
03d0fc559a4e9a24f49c459b81401da8 library/language/no/html/user_agreement.html
c74b6ea082049333bfadcd93c46cff79 library/language/pl/main.php
90b64d5148ee7f5a0f5e1597372c4833 library/language/pl/main.php
8e869e1b159e271a5140c50df736b725 library/language/pl/email/admin_send_email.html
a7d99cd8e0fc5edcea26ad250c3552b0 library/language/pl/email/blank.html
5f6ef4f5552d20520630b3be05b7fa94 library/language/pl/email/group_added.html
@ -785,7 +785,7 @@ fc8fb1a1439bd07c3ce4bc38b37ed0ec library/language/pl/email/user_welcome_inactiv
b897aa5753a25f702ce106170d074411 library/language/pl/html/sidebar1.html
d7c43792c3ff2bfbbda9354c8a77e7a1 library/language/pl/html/sidebar2.html
93f86c519762dd32386646a8309f3537 library/language/pl/html/user_agreement.html
30a6f48cf1a0a787937cea052584c454 library/language/pt/main.php
db00433e0e04e0e6b29a6d7a90c6264a library/language/pt/main.php
114429d7e62ae45708ac49d9b36ef4d8 library/language/pt/email/admin_send_email.html
a7d99cd8e0fc5edcea26ad250c3552b0 library/language/pt/email/blank.html
9aa088320fe1a639459e0588fa4bad01 library/language/pt/email/group_added.html
@ -804,7 +804,7 @@ edf217127844e06669bbc420d90c7263 library/language/pt/html/advert.html
6b444ea216b9d160c9a86c624a7d9e4d library/language/pt/html/sidebar1.html
9784fffc4cd947ef02f4d877828af17f library/language/pt/html/sidebar2.html
1c881b201c3fb91338f20eafcd59972f library/language/pt/html/user_agreement.html
bc9bb574e422838abbebb86b25014cb8 library/language/ro/main.php
98b53fafe6e15fe77ec31adca33bc1bc library/language/ro/main.php
d1d2b21b9c90838a9aa575032db148b6 library/language/ro/email/admin_send_email.html
a7d99cd8e0fc5edcea26ad250c3552b0 library/language/ro/email/blank.html
f56ff2a4c8fb01ef34dbc0761f23428e library/language/ro/email/group_added.html
@ -823,7 +823,7 @@ ba75974388e650f3a57cd3deaaf24870 library/language/ro/email/user_welcome_inactiv
0ab7dcbad16fd96af67401721a5129b1 library/language/ro/html/sidebar1.html
d9689659fa9f04c69c456c3c1448d20f library/language/ro/html/sidebar2.html
87b4b067fb714134565e04462d4aa076 library/language/ro/html/user_agreement.html
176d2a4461ab8062687a64c6cf41d059 library/language/ru/main.php
a0447b63248cfe24d45dc05205561c3d library/language/ru/main.php
8f410b36187c5256d6c8ff87aec3ef0f library/language/ru/email/admin_send_email.html
a7d99cd8e0fc5edcea26ad250c3552b0 library/language/ru/email/blank.html
e4e28bf037af98681167164d46f462b6 library/language/ru/email/group_added.html
@ -842,7 +842,7 @@ b682435a57c33add1e532e985f676b51 library/language/ru/html/advert.html
f08bb23a480d83eb293c2bcc45d9e5f3 library/language/ru/html/sidebar1.html
480e35f292515b08acb930a87bd36ed0 library/language/ru/html/sidebar2.html
fc0cb1d13002e65f94ef1f74b66b91bd library/language/ru/html/user_agreement.html
0e3af4375d8183b95f1576d6347ccf9f library/language/sk/main.php
7525d8047fa1677a19a46e8e7f1a8fde library/language/sk/main.php
c74a4d5bdf3440370f118ca07f1523da library/language/sk/email/admin_send_email.html
a7d99cd8e0fc5edcea26ad250c3552b0 library/language/sk/email/blank.html
0958412ecf73cc8483223c1846e78efc library/language/sk/email/group_added.html
@ -861,7 +861,7 @@ de2e51415b3e41eacd37ef2ed8f5594d library/language/sk/html/copyright_holders.htm
e8d230ebfeaf50f93f3c29fffebcfa55 library/language/sk/html/sidebar1.html
55805a56d49546cbb607ef8b2e38fa3e library/language/sk/html/sidebar2.html
35c9eeb159610996503e72c93e34ee9c library/language/sk/html/user_agreement.html
a67f8c81f17f83a81fc7dce46c82c5d5 library/language/sl/main.php
9dd522fd63ccb48383139b4bda5b9158 library/language/sl/main.php
fe6bfbb5568bcff0e7018cb1763ea19b library/language/sl/email/admin_send_email.html
a7d99cd8e0fc5edcea26ad250c3552b0 library/language/sl/email/blank.html
1d136f9eff28d959c46ea3bf1e91421a library/language/sl/email/group_added.html
@ -880,7 +880,7 @@ e3838f6865081ffdab7c2247a956c649 library/language/sl/html/not_found.html
1473f0b747870e40145e8528c2f84390 library/language/sl/html/sidebar1.html
6e846e2ab155843329a20f367fbaad5f library/language/sl/html/sidebar2.html
d8cdfe88cebf4c3285bfea2d33f3311e library/language/sl/html/user_agreement.html
e7cdcd4610dacefae1b0ac839916d856 library/language/source/main.php
d87049e7b104bd9c9532ae83e80c1aa2 library/language/source/main.php
43ace478369536d757ecb52682ece0ef library/language/source/email/admin_send_email.html
a7d99cd8e0fc5edcea26ad250c3552b0 library/language/source/email/blank.html
184658cb8e493afa7458eff0e27f470e library/language/source/email/group_added.html
@ -899,7 +899,7 @@ b6caa4c7d5062292c26a014b4b39389c library/language/source/html/copyright_holders
1cd0360bd6153169750417809cb44669 library/language/source/html/sidebar1.html
ff0881e90bec102d05a9bc85461a923a library/language/source/html/sidebar2.html
41f1ab5db4ea0f10c14adf27decb7392 library/language/source/html/user_agreement.html
462f2c8b56c4e44cac59691483a45fb4 library/language/sq/main.php
0257af896d66a78afac23b858e5e2563 library/language/sq/main.php
2d9812e5038e6c531a346883055cbea0 library/language/sq/email/admin_send_email.html
a7d99cd8e0fc5edcea26ad250c3552b0 library/language/sq/email/blank.html
86f212c370d95729c5847cdd2e981dd5 library/language/sq/email/group_added.html
@ -918,7 +918,7 @@ a6277c4830c7b7f5c372bb1a3a2b43ce library/language/sq/email/user_welcome_inactiv
84181159bcbc7876a0d35351821975b3 library/language/sq/html/sidebar1.html
06195bff10f8bd6dbd79dd3338e627a1 library/language/sq/html/sidebar2.html
7635e5eb8439a446e49713578c47510f library/language/sq/html/user_agreement.html
1119e1fba7d68d290f3b2b95033cbf50 library/language/sr/main.php
457d02856d30e7f30f61c172a430cd85 library/language/sr/main.php
42be071989d17e92cfa6991c69add8e3 library/language/sr/email/admin_send_email.html
a7d99cd8e0fc5edcea26ad250c3552b0 library/language/sr/email/blank.html
2132d77a66ac00d8c74d491882b3f450 library/language/sr/email/group_added.html
@ -937,7 +937,7 @@ e9ccc6fdcf3b6fca014d589826255fd4 library/language/sr/html/copyright_holders.htm
69ac10eb7b1a3505ecfc719a8c3ca167 library/language/sr/html/sidebar1.html
b36a10535549e9d41bacb41e5ab29d72 library/language/sr/html/sidebar2.html
4dc4995b3908b0c8028668278abec27a library/language/sr/html/user_agreement.html
d50c9f803b005bdd40412e9d80c13621 library/language/sv/main.php
3f21f2ba44b7f0ccb9f071e4eb90fb6c library/language/sv/main.php
9b644daff1d85027d5ffb55a21bf08fa library/language/sv/email/admin_send_email.html
a7d99cd8e0fc5edcea26ad250c3552b0 library/language/sv/email/blank.html
392ecf4d72279df3ec6231b013848c72 library/language/sv/email/group_added.html
@ -956,7 +956,7 @@ e3f70ef990d06dac7f3a26572cf846e3 library/language/sv/html/advert.html
c613f879a1ee494eeb3f536b79321805 library/language/sv/html/sidebar1.html
e7bb043f48157a072515bdc6aa4a70f9 library/language/sv/html/sidebar2.html
2cb290d3bd7de66975485bc8e37a468b library/language/sv/html/user_agreement.html
09756749ad92e39dab6cb33073b0093f library/language/tg/main.php
32aacf796e8ccc8577ba632712ab0f1f library/language/tg/main.php
5875ad97a5b7be6a25217e7489a9a9a4 library/language/tg/email/admin_send_email.html
a7d99cd8e0fc5edcea26ad250c3552b0 library/language/tg/email/blank.html
6c9aaa943841abb325566cdf5d5db7eb library/language/tg/email/group_added.html
@ -975,7 +975,7 @@ e3c66a2d238b4a3416f0cf30982f48f1 library/language/tg/html/advert.html
fd7e2cec354720220b6785ae76856db3 library/language/tg/html/sidebar1.html
e6e345c7db0e71a63cd7435b08815d4f library/language/tg/html/sidebar2.html
c9ee44932cd65d2286c88b44f8972249 library/language/tg/html/user_agreement.html
1fbc77a6b09b9fd670caef45cdfb420e library/language/th/main.php
9932d0dbc8c0ba4937008bc959675865 library/language/th/main.php
68a674a35a6f9ed5808a494f4d60bd3f library/language/th/email/admin_send_email.html
a7d99cd8e0fc5edcea26ad250c3552b0 library/language/th/email/blank.html
1135561d5945a84e29f8b8e776be673b library/language/th/email/group_added.html
@ -994,7 +994,7 @@ c9e0f954071a6635930a61034723ea46 library/language/th/html/copyright_holders.htm
dad6c9f7c1285e83b609747874033494 library/language/th/html/sidebar1.html
461ee22290ae1e1d8a726b5f18c219da library/language/th/html/sidebar2.html
c4b3c0f38e88e2b21e68517cc5a1d96c library/language/th/html/user_agreement.html
1d25e8aa192deb80429964089dd469b7 library/language/tr/main.php
6fc659f514d2260ceb341a3f2c4c591f library/language/tr/main.php
c43d43d5c1e0a75d88ecf3bf4715530c library/language/tr/email/admin_send_email.html
a7d99cd8e0fc5edcea26ad250c3552b0 library/language/tr/email/blank.html
bf0f108b7232a2921b49ee74631d6c94 library/language/tr/email/group_added.html
@ -1013,7 +1013,7 @@ ed004d63ce744e83693fc6c8a7d608fe library/language/tr/html/advert.html
3417bc8ba65bab33e171caee686166df library/language/tr/html/sidebar1.html
4bf0fb18a7a30d13b2665cedb0c3450e library/language/tr/html/sidebar2.html
b4fcda8936601e2c807a29a2a18cd85c library/language/tr/html/user_agreement.html
a9ab58879de8db074df5766387440f60 library/language/uk/main.php
c9f8db90d30fe43ae547a68e224a2b45 library/language/uk/main.php
2bb18814b16dc8a67ac434b5f362792a library/language/uk/email/admin_send_email.html
a7d99cd8e0fc5edcea26ad250c3552b0 library/language/uk/email/blank.html
3c502ea91f349376d4d1f4b7034c5291 library/language/uk/email/group_added.html
@ -1032,7 +1032,7 @@ fcb832f029367bfd89105b1416354414 library/language/uk/html/not_found.html
a42d06fd9d064f4ec79d8bc16a4f2bad library/language/uk/html/sidebar1.html
ce70226dc294049ae7759b7a07b5c117 library/language/uk/html/sidebar2.html
566a95c733767a443006cfa69577b592 library/language/uk/html/user_agreement.html
bd5d7f56c16463c3547e6d2839b02c30 library/language/uz/main.php
ddfb2f9c209785c6b819195ce83ad147 library/language/uz/main.php
b467b1df2cbace46b084f0d6c2438e81 library/language/uz/email/admin_send_email.html
a7d99cd8e0fc5edcea26ad250c3552b0 library/language/uz/email/blank.html
4ad1223a6b5bbfb1a8f997f635b92dea library/language/uz/email/group_added.html
@ -1051,7 +1051,7 @@ f42eff25bd6ec7eb7610eaee48b5de24 library/language/uz/html/copyright_holders.htm
15736ca6d2ed409c551a98e8d5a613d6 library/language/uz/html/sidebar1.html
302ae8b0d3f6f8d450445b5be38ee8cd library/language/uz/html/sidebar2.html
c508bb16aca7c9f2186beafc232916bf library/language/uz/html/user_agreement.html
cb15c21c7b22a539388636c898311acf library/language/vi/main.php
b91aefda801abfab3c4f9121d6fd5222 library/language/vi/main.php
b1d6991b2c869cfa2718f4589f4e7639 library/language/vi/email/admin_send_email.html
a7d99cd8e0fc5edcea26ad250c3552b0 library/language/vi/email/blank.html
0d689ec3a9b6c54b470484034da915be library/language/vi/email/group_added.html
@ -1070,7 +1070,7 @@ d3de3f3a0bcef787adbcc88bf4715886 library/language/vi/html/not_found.html
ff2ec96ba76df1a6cf630ad0fc6028f0 library/language/vi/html/sidebar1.html
024e03b246a6076e73a774c81940dbe1 library/language/vi/html/sidebar2.html
0ade09a12e6bf379da3e0e14fb1d41f4 library/language/vi/html/user_agreement.html
73a66086891e4d7e25d5f53f9b008871 library/language/zh/main.php
4b0b8b1ed76afc852e5ab2d535991d5e library/language/zh/main.php
9b89fbc9fd80667849ca47ea8f2ecff6 library/language/zh/email/admin_send_email.html
a7d99cd8e0fc5edcea26ad250c3552b0 library/language/zh/email/blank.html
e6d06a83cffe205a55a6cc442520b09f library/language/zh/email/group_added.html
@ -1097,6 +1097,7 @@ d41d8cd98f00b204e9800998ecf8427e sitemap/.keep
a8810dcfb889abfd133e5eb0361173c7 src/Env.php
f98f31aa7026a1ec5e548adead3b679e src/Sessions.php
86b946126503ef2f2375c89fdff538db src/Sitemap.php
b40bbd1574345948b70d01bcaf6ef679 src/Updater.php
d0293f37bffb990dcfe833c76e2d72d3 src/Validate.php
753aeddf0fdc35aeaa1f1cbc6d9447a4 src/Helpers/CronHelper.php
ad6a0b076860bb0d8edc34840a152c61 src/Helpers/IPHelper.php
@ -1563,7 +1564,7 @@ b3272b1907f53010aa984bed5fbe02b8 styles/templates/admin/admin_smilies.tpl
3600ffd781808cd501b6c774ac427a11 styles/templates/admin/admin_user_ban.tpl
63551b4021ef1074962f421489eba85e styles/templates/admin/admin_user_search.tpl
9f4a3d702b416ee3329b92ec68a88b00 styles/templates/admin/admin_words.tpl
8f56fdfb65885cd88ffde03192de9182 styles/templates/admin/index.tpl
13a98a41137c6616025fcf3cd208f29b styles/templates/admin/index.tpl
73a8d3c64e2478a4d6b698bd78660319 styles/templates/default/ajax_edit.tpl
b48c2f4e08a302c4985f8b951d4818a3 styles/templates/default/common.tpl
9b6be2ef3c9af370331855db875c7e1c styles/templates/default/group.tpl

View file

@ -82,6 +82,10 @@ switch ($mode) {
\TorrentPier\Helpers\CronHelper::enableBoard();
$this->response['unlock_cron_html'] = '<span class="seed bold">' . $lang['ADMIN_UNLOCKED'] . '</span>';
break;
case 'restore_corrupt_files':
file_write('', RESTORE_CORRUPT_CONFIRM_FILE, replace_content: true);
$this->response['restore_corrupt_files_html'] = '<span class="seed bold">' . $lang['INTEGRITY_RESTORE_CONFIRM_OK'] . '</span>';
break;
default:
$this->ajax_die('Invalid mode: ' . $mode);
}

View file

@ -556,6 +556,7 @@ $bb_cfg['flist_max_files'] = 0; // Max allowed number of files to process for gi
$bb_cfg['last_visit_date_format'] = 'd-M H:i';
$bb_cfg['last_post_date_format'] = 'd-M-y H:i';
$bb_cfg['poll_max_days'] = 180; // How many days will the poll be active
$bb_cfg['integrity_check'] = true; // TorrentPier files integrity check (Not recommended to disable!)
$bb_cfg['allow_change'] = [
'language' => true, // Allow user to change language

View file

@ -30,10 +30,11 @@ define('TEMPLATES_DIR', BB_PATH . '/styles/templates');
// System
define('APP_NAME', 'TorrentPier');
define('UPDATER_URL', 'https://api.github.com/repos/torrentpier/torrentpier/releases/latest');
define('UPDATER_FILE', INT_DATA_DIR . '/updater.ver');
define('UPDATER_URL', 'https://api.github.com/repos/torrentpier/torrentpier/releases');
define('UPDATER_FILE', INT_DATA_DIR . '/updater.json');
define('API_IP_URL', 'https://freeipapi.com/api/json/');
define('CHECKSUMS_FILE', INT_DATA_DIR . '/checksums.md5');
define('RESTORE_CORRUPT_CONFIRM_FILE', INT_DATA_DIR . '/rescorrupt.integrity');
define('CHECK_REQUIREMENTS', [
'status' => true,
'php_min_version' => '8.1.0',

View file

@ -15,41 +15,34 @@ global $bb_cfg;
$data = [];
$context = stream_context_create(['http' => ['header' => 'User-Agent: ' . APP_NAME, 'timeout' => 10, 'ignore_errors' => true]]);
$updater_content = file_get_contents(UPDATER_URL, context: $context);
$updaterDownloader = new \TorrentPier\Updater();
$updaterDownloader = $updaterDownloader->getLastVersion();
$json_response = false;
if ($updater_content !== false) {
$json_response = json_decode(utf8_encode($updater_content), true);
}
$get_version = $updaterDownloader['tag_name'];
$version_code_actual = (int)trim(str_replace(['.', 'v'], '', $get_version));
if ((is_array($json_response) && !empty($json_response)) && !isset($json_response['message'])) {
$get_version = $json_response['tag_name'];
$version_code_actual = (int)trim(str_replace(['.', 'v'], '', $get_version));
// Has update!
if (VERSION_CODE < $version_code_actual) {
$latest_release_file = $updaterDownloader['assets'][0]['browser_download_url'];
// Has update!
if (VERSION_CODE < $version_code_actual) {
$latest_release_file = $json_response['assets'][0]['browser_download_url'];
// Save current version & latest available
file_write(json_encode(['previous_version' => VERSION_CODE, 'latest_version' => $version_code_actual]), UPDATER_FILE, replace_content: true);
// Save current version & latest available
file_write(VERSION_CODE . "\n" . $version_code_actual, UPDATER_FILE, replace_content: true);
// Get MD5 checksum
$md5_file_checksum = '';
if (isset($latest_release_file)) {
$md5_file_checksum = strtoupper(md5_file($latest_release_file));
}
// Build data array
$data = [
'available_update' => true,
'latest_version' => $get_version,
'latest_version_size' => isset($json_response['assets'][0]['size']) ? humn_size($json_response['assets'][0]['size']) : false,
'latest_version_dl_link' => $latest_release_file ?? $json_response['html_url'],
'latest_version_checksum' => $md5_file_checksum,
'latest_version_link' => $json_response['html_url']
];
// Get MD5 checksum
$md5_file_checksum = '';
if (isset($latest_release_file)) {
$md5_file_checksum = strtoupper(md5_file($latest_release_file));
}
// Build data array
$data = [
'available_update' => true,
'latest_version' => $get_version,
'latest_version_size' => isset($updaterDownloader['assets'][0]['size']) ? humn_size($updaterDownloader['assets'][0]['size']) : false,
'latest_version_dl_link' => $latest_release_file ?? $updaterDownloader['html_url'],
'latest_version_checksum' => $md5_file_checksum,
'latest_version_link' => $updaterDownloader['html_url']
];
}
$data[] = ['latest_check_timestamp' => TIMENOW];

View file

@ -13,12 +13,14 @@ if (!defined('BB_ROOT')) {
global $bb_cfg;
$data = [];
$filesList = [];
if (!$bb_cfg['integrity_check']) {
return;
}
$checksumFile = new SplFileObject(CHECKSUMS_FILE, 'r');
$checksumFile->setFlags(SplFileObject::SKIP_EMPTY | SplFileObject::DROP_NEW_LINE);
$filesList = [];
$lines = [];
foreach ($checksumFile as $line) {
$parts = explode(' ', $line);
@ -36,13 +38,41 @@ foreach ($checksumFile as $line) {
];
}
$dynamicFiles = [
BB_ENABLED
];
$wrongFilesList = [];
foreach ($filesList as $file) {
if (strtolower(md5_file(BB_ROOT . '/' . $file['path'])) !== strtolower($file['hash'])) {
if (!empty($dynamicFiles) && in_array(hide_bb_path($file['path']), $dynamicFiles)) {
// Exclude dynamic files
continue;
}
if (!file_exists(BB_ROOT . '/' . $file['path']) || strtolower(md5_file(BB_ROOT . '/' . $file['path'])) !== strtolower($file['hash'])) {
$wrongFilesList[] = $file['path'];
}
}
// Restore corrupt files
if (is_file(RESTORE_CORRUPT_CONFIRM_FILE)) {
$buildDownloader = new \TorrentPier\Updater();
if ($buildDownloader->download(INT_DATA_DIR . '/', $bb_cfg['tp_version'])) {
// Unzip downloaded build file
$zipArchive = new ZipArchive;
$extractDownloadedFile = $zipArchive->open($buildDownloader->savePath);
if ($extractDownloadedFile === true) {
if ($zipArchive->extractTo(BB_ROOT, $wrongFilesList)) {
$wrongFilesList = [];
}
$zipArchive->close();
}
}
// Delete restore confirm file & build file
unlink($buildDownloader->savePath);
unlink(RESTORE_CORRUPT_CONFIRM_FILE);
}
$data = [
'success' => empty($wrongFilesList),
'wrong_files' => $wrongFilesList,

View file

@ -2152,17 +2152,10 @@ function readUpdaterFile(): array|bool
return false;
}
$updaterFile = new SplFileObject(UPDATER_FILE, 'r');
$updaterFile->setFlags(SplFileObject::SKIP_EMPTY | SplFileObject::DROP_NEW_LINE);
$lines = [];
foreach ($updaterFile as $line) {
$lines[] = is_numeric($line) ? (int)$line : 0;
}
$decodedFile = json_decode(file_get_contents(UPDATER_FILE), true);
return [
'previous_version' => $lines[0],
'latest_version' => $lines[1]
'previous_version' => $decodedFile['previous_version'],
'latest_version' => $decodedFile['latest_version']
];
}

View file

@ -2288,6 +2288,8 @@ $lang['INTEGRITY_CHECK_SUCCESS'] = 'TorrentPier files integrity check was succes
$lang['INTEGRITY_CHECK_FAIL'] = 'Some TorrentPier files not pass integrity check!';
$lang['INTEGRITY_CHECKED'] = 'Total checked: %s file(s), of which pass integrity check: %s file(s).';
$lang['INTEGRITY_LAST_CHECK'] = 'Last check: %s.';
$lang['INTEGRITY_RESTORE_ON_NEXT_RUN'] = 'Restore corrupt files on next integrity check?';
$lang['INTEGRITY_RESTORE_CONFIRM_OK'] = 'Corrupt files will be restored on next integrity check!';
// Version Check
$lang['VERSION_INFORMATION'] = 'Version Information';

126
src/Updater.php Normal file
View file

@ -0,0 +1,126 @@
<?php
/**
* TorrentPier Bull-powered BitTorrent tracker engine
*
* @copyright Copyright (c) 2005-2024 TorrentPier (https://torrentpier.com)
* @link https://github.com/torrentpier/torrentpier for the canonical source repository
* @license https://github.com/torrentpier/torrentpier/blob/master/LICENSE MIT License
*/
namespace TorrentPier;
use Exception;
/**
* Class Updater
* @package TorrentPier
*/
class Updater
{
/**
* Target version of TorrentPier
*
* @var string
*/
public string $targetVersion;
/**
* Json response
*
* @var array
*/
private array $jsonResponse = [];
/**
* Save path
*
* @var string
*/
public string $savePath;
/**
* Updater constructor
*
* @throws Exception
*/
public function __construct()
{
$context = stream_context_create(['http' => ['header' => 'User-Agent: ' . APP_NAME, 'timeout' => 10, 'ignore_errors' => true]]);
$response = file_get_contents(UPDATER_URL, context: $context);
if ($response !== false) {
$this->jsonResponse = json_decode(utf8_encode($response), true);
}
// Empty JSON result
if (empty($this->jsonResponse)) {
throw new Exception('Empty JSON response');
}
// Response message from GitHub
if (isset($json_response['message'])) {
throw new Exception($json_response['message']);
}
return $this->jsonResponse;
}
/**
* Download build from GitHub
*
* @param string $path
* @param string $targetVersion
* @return bool
* @throws Exception
*/
public function download(string $path, string $targetVersion = 'latest'): bool
{
$this->targetVersion = $targetVersion;
if ($targetVersion === 'latest') {
$versionInfo = $this->getLastVersion();
} else {
$targetIndex = array_search($targetVersion, array_column($this->jsonResponse, 'tag_name'));
$versionInfo = is_numeric($targetIndex) ? $this->jsonResponse[$targetIndex] : false;
}
if (empty($versionInfo)) {
throw new Exception('Empty version data');
}
$downloadLink = $versionInfo['assets'][0]['browser_download_url'];
$getFile = file_get_contents($downloadLink);
if ($getFile === false) {
throw new Exception("Can't retrieve TorrentPier build file");
}
// Save build file
$this->savePath = $path . $versionInfo['assets'][0]['name'];
file_put_contents($this->savePath, $getFile);
if (!is_file($this->savePath)) {
throw new Exception("Can't save TorrentPier build file");
}
// Get MD5 checksums
$getMD5OfRemoteFile = strtoupper(md5_file($downloadLink));
$getMD5OfSavedFile = strtoupper(md5_file($this->savePath));
// Compare MD5 hashes
if ($getMD5OfRemoteFile !== $getMD5OfSavedFile) {
throw new Exception("MD5 hashes don't match");
}
return true;
}
/**
* Returns information of latest TorrentPier version
*
* @return array
*/
public function getLastVersion(): array
{
return $this->jsonResponse[0];
}
}

View file

@ -81,9 +81,11 @@
$('#sync_topics').html(data.sync_topics_html);
$('#sync_user_posts').html(data.sync_user_posts_html);
$('#unlock_cron').html(data.unlock_cron_html);
$('#restore_corrupt_files').html(data.restore_corrupt_files_html);
}
</script>
<br>
<!-- BEGIN integrity_check -->
<!-- IF integrity_check.INTEGRITY_SUCCESS -->
<div class="alert alert-success" style="width: 95%;">
@ -99,6 +101,8 @@
<ul style="max-height: 120px; overflow-x: auto;">
<li>{integrity_check.INTEGRITY_WRONG_FILES_LIST}</li>
</ul>
<hr>
<a href="#" id="restore_corrupt_files" onclick="ajax.manage_admin('restore_corrupt_files'); return false;">{L_INTEGRITY_RESTORE_ON_NEXT_RUN}</a>
<!-- ENDIF -->
</div>
<!-- ENDIF -->