From 61378665fee1577f826a2609f6e27fed75835999 Mon Sep 17 00:00:00 2001
From: Krakinou
Date: Tue, 18 Dec 2018 21:29:30 +0100
Subject: [PATCH 01/45] README update
---
README.md | 44 +++++++++++++++++---------------------------
1 file changed, 17 insertions(+), 27 deletions(-)
diff --git a/README.md b/README.md
index 85ea94c..2367ae9 100644
--- a/README.md
+++ b/README.md
@@ -12,30 +12,20 @@ Of course, once uninstalled, everything get back to normal.
TODO :
------
-[X] move to 2.0
-
-[ ] check nginx conf
-
-[X] insert clean index.php
-
-[ ] insert cron in conf
-
-[ ] insert symlink for langages in /lang
-
-[X] check dependency for lang
-
-[X] remove php-geoip
-
-[ ] remove new locale on remove
-
-[X] Why the flag don't show??
-
-[X] Implement Admin panel
-
-[X] Add backup restore script
-
-[ ] check checksum on download
-
-[ ] Test it ! (and check if that doesn't interfer with postfix and its aliases)
-
-[ ] cron job to remove redirections (0 */2 * * * /usr/bin/wget -q -t 1 -T 7200 -O /dev/null 'https://domain/poubelle/index.php?act=cron' >/dev/null 2>&1) conflict with SSOWAT + non-public app
+- [X] move to 2.0
+- [ ] check nginx conf
+- [X] insert clean index.php
+- [ ] insert cron in conf
+- [ ] insert symlink for langages in /lang
+- [X] check dependency for lang
+- [X] remove php-geoip
+- [ ] remove new locale on remove
+- [X] Why the flags don't show??
+- [X] Implement Admin panel
+- [X] Add backup restore script
+- [ ] check checksum on download
+- [ ] Test it ! (and check if that doesn't interfer with postfix and its aliases)
+- [ ] cron job to remove redirections (0 */2 * * * /usr/bin/wget -q -t 1 -T 7200 -O /dev/null 'https://domain/poubelle/index.php?act=cron' >/dev/null 2>&1) conflict with SSOWAT + non-public app
+- [ ] package_check integration
+- [ ] Multiinstance
+- [ ] LDAP
From b8ec4d75958be0935e31d3eef547669fe8cd9e6d Mon Sep 17 00:00:00 2001
From: Krakinou
Date: Fri, 21 Dec 2018 19:58:23 +0100
Subject: [PATCH 02/45] Update with check_process & package_linter
---
.project | 11 +++++++++++
check_process | 38 ++++++++++++++++++++++++++++++++++++++
scripts/upgrade | 40 ++++++++++++++++++++++++++++++++++++++--
3 files changed, 87 insertions(+), 2 deletions(-)
create mode 100644 .project
create mode 100644 check_process
diff --git a/.project b/.project
new file mode 100644
index 0000000..24d3b92
--- /dev/null
+++ b/.project
@@ -0,0 +1,11 @@
+
+
+ poubelle_ynh
+
+
+
+
+
+
+
+
diff --git a/check_process b/check_process
new file mode 100644
index 0000000..fd21e38
--- /dev/null
+++ b/check_process
@@ -0,0 +1,38 @@
+;; Complete Test
+# Comment ignored
+ ; Manifest
+ domain="domain.tld" (DOMAIN)
+ path="/poubelle" (PATH)
+ admin="john" (USER)
+ is_public=0 (PUBLIC|public=1|private=0)
+ password="password"
+ ; Checks
+ pkg_linter=1
+ setup_sub_dir=1
+ setup_root=1
+ setup_private=1
+ setup_public=1
+ upgrade=1
+ backup_restore=1
+ multi_instance=0
+ incorrect_path=1
+ port_already_use=0 (XXXX)
+ change_url=0
+;;; Levels
+ Level 1=auto
+ Level 2=auto
+ Level 3=auto
+ Level 4=0
+ Level 5=auto
+ Level 6=auto
+ Level 7=auto
+ Level 8=0
+ Level 9=0
+ Level 10=0
+;;; Options
+Email=
+Notification=none
+;;; Upgrade options
+# ; commit=65c382d138596fcb32b4c97c39398815a1dcd4e8
+ name=Name of this previous version
+ manifest_arg=domain=DOMAIN&path=PATH&admin=USER&password=pass&is_public=0&
\ No newline at end of file
diff --git a/scripts/upgrade b/scripts/upgrade
index 65cd665..5c7e84e 100644
--- a/scripts/upgrade
+++ b/scripts/upgrade
@@ -7,19 +7,46 @@
#=================================================
source _common.sh
source /usr/share/yunohost/helpers
+
+
#=================================================
# LOAD SETTINGS
#=================================================
app=$YNH_APP_INSTANCE_NAME
-
domain=$(ynh_app_setting_get $app domain)
path_url=$(ynh_app_setting_get $app path)
admin=$(ynh_app_setting_get $app admin)
final_path=$(ynh_app_setting_get $app final_path)
db_name=$(ynh_app_setting_get $app db_name)
+
+#=================================================
+# BACKUP BEFORE UPGRADE THEN ACTIVE TRAP
+#=================================================
+
+# Backup the current version of the app
+ynh_backup_before_upgrade
+ynh_clean_setup () {
+ # restore it if the upgrade fails
+ ynh_restore_upgradebackup
+}
+# Exit if an error occurs during the execution of the script
+ynh_abort_if_errors
+
+
+#=================================================
+# CHECK THE PATH
+#=================================================
+
+# Normalize the URL path syntax
+path_url=$(ynh_normalize_url_path $path_url)
+
+
+#=================================================
#check for matlink's version
+#=================================================
+
cat /etc/yunohost/apps/$app/status.json | grep "matlink"
if [[ $?==0 ]]; then
#add missing info in settings
@@ -61,6 +88,11 @@ if [[ $?==0 ]]; then
fi
+
+#=================================================
+# NGINX CONFIGURATION
+#=================================================
+
#change nginx.conf as per https://forum.yunohost.org/t/need-help-on-nginx-conf-cannot-access-resources/6342
ynh_replace_string "alias $finalpath/www/ ;" "alias $finalpath/ ;" /etc/yunohost/$domain.d/$app.conf
ynh_replace_string "index index.php;" "index www/ndex.php;" /etc/yunohost/$domain.d/$app.conf
@@ -68,6 +100,8 @@ ynh_replace_string "index index.php;" "index www/ndex.php;" /etc/yunohost/$domai
#correct template name in index.php
ynh_replace_string "Template-exemple" "$domain" $final_path/www/index.php
+
+
#mysqlpwd setting was implemented in ynh2 - check if saved and if not implement
db_pass=$(ynh_app_setting_get $app mysqlpwd)
if [ -z $db_pass]; then
@@ -106,7 +140,9 @@ chown -R www-data:www-data $final_path
#sudo echo "$cronline" | sudo tee -a /etc/cron.d/emailpoubelle
#sudo chmod 644 /etc/cron.d/emailpoubelle
-# Restart services
+#=================================================
+# RELOAD SERVICES
+#=================================================
systemctl restart php7.0-fpm
systemctl reload nginx
systemctl reload postfix
From 5749ece16ef9040487d575666acb7eb6d681145b Mon Sep 17 00:00:00 2001
From: Krakinou
Date: Fri, 21 Dec 2018 20:11:59 +0100
Subject: [PATCH 03/45] correct check_process
---
check_process | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/check_process b/check_process
index fd21e38..e0d2ab2 100644
--- a/check_process
+++ b/check_process
@@ -4,7 +4,7 @@
domain="domain.tld" (DOMAIN)
path="/poubelle" (PATH)
admin="john" (USER)
- is_public=0 (PUBLIC|public=1|private=0)
+ is_public=1 (PUBLIC|public=1|private=0)
password="password"
; Checks
pkg_linter=1
From dedfae73e8f171a754caeac777cb23b1cc073769 Mon Sep 17 00:00:00 2001
From: Krakinou
Date: Mon, 4 Mar 2019 21:10:34 +0100
Subject: [PATCH 04/45] Postfix & sources
Use clean postfix regen #6
Use ynh_setup_source
---
README.md | 1 +
conf/app.src | 3 +
manifest.json | 12 +-
scripts/backup | 1 -
scripts/install | 25 +-
scripts/remove | 6 +-
scripts/restore | 5 +-
scripts/upgrade | 75 ++-
.../hooks/conf_regen/98-postfix_emailpoubelle | 42 ++
src/.gitignore | 9 -
src/CHANGELOG.md | 66 ---
src/README.md | 44 --
src/bin/migrate-0.3-1.0.php | 80 ---
src/conf-dist.php | 98 ----
src/emailPoubelle.php | 373 -------------
src/emailPoubelleAdmin.php | 174 -------
src/lang/fr/LC_MESSAGES/messages.mo | Bin 8200 -> 0 bytes
src/lang/fr/LC_MESSAGES/messages.po | 369 -------------
src/lang/fr/LC_MESSAGES/messages_old.po | 312 -----------
src/lang/it/LC_MESSAGES/messages.mo | Bin 8051 -> 0 bytes
src/lang/it/LC_MESSAGES/messages.po | 399 --------------
src/lang/messages.pot | 383 --------------
src/lang/note.txt | 11 -
src/lib/blk.png | Bin 944 -> 0 bytes
src/lib/drapaux.gif | Bin 35432 -> 0 bytes
src/lib/en.png | Bin 1078 -> 0 bytes
src/lib/ep_function.php | 492 ------------------
src/lib/ep_header.php | 67 ---
src/lib/fr.png | Bin 914 -> 0 bytes
src/lib/it.png | Bin 901 -> 0 bytes
src/lib/status0.png | Bin 360 -> 0 bytes
src/lib/status3.png | Bin 358 -> 0 bytes
src/lib/status5.png | Bin 355 -> 0 bytes
src/lib/sup.png | Bin 311 -> 0 bytes
src/var/aliasdeny.txt | 22 -
src/var/blacklist.txt | 7 -
src/www/admin.php | 197 -------
src/www/index.php | 36 --
src/www/template-exemple/ai1.png | Bin 116 -> 0 bytes
src/www/template-exemple/ai2.png | Bin 116 -> 0 bytes
src/www/template-exemple/ai3.png | Bin 196 -> 0 bytes
src/www/template-exemple/ai4.png | Bin 195 -> 0 bytes
src/www/template-exemple/ai5.png | Bin 183 -> 0 bytes
src/www/template-exemple/ai6.png | Bin 136 -> 0 bytes
src/www/template-exemple/ai7.png | Bin 137 -> 0 bytes
src/www/template-exemple/ai8.png | Bin 137 -> 0 bytes
src/www/template-exemple/hd.jpg | Bin 68543 -> 0 bytes
src/www/template-exemple/html5-ie.js | 10 -
src/www/template-exemple/image-1.png | Bin 270 -> 0 bytes
src/www/template-exemple/img1.png | Bin 8337 -> 0 bytes
src/www/template-exemple/img2.png | Bin 7656 -> 0 bytes
src/www/template-exemple/img3.png | Bin 8434 -> 0 bytes
src/www/template-exemple/img4.png | Bin 5672 -> 0 bytes
src/www/template-exemple/img5.png | Bin 7064 -> 0 bytes
src/www/template-exemple/img6.png | Bin 8533 -> 0 bytes
src/www/template-exemple/jabz-logo.png | Bin 1139 -> 0 bytes
src/www/template-exemple/jonas-jacek.png | Bin 1694 -> 0 bytes
src/www/template-exemple/readme.txt | 34 --
src/www/template-exemple/style.css | 442 ----------------
59 files changed, 108 insertions(+), 3687 deletions(-)
create mode 100644 conf/app.src
create mode 100644 sources/hooks/conf_regen/98-postfix_emailpoubelle
delete mode 100644 src/.gitignore
delete mode 100644 src/CHANGELOG.md
delete mode 100644 src/README.md
delete mode 100644 src/bin/migrate-0.3-1.0.php
delete mode 100644 src/conf-dist.php
delete mode 100644 src/emailPoubelle.php
delete mode 100644 src/emailPoubelleAdmin.php
delete mode 100644 src/lang/fr/LC_MESSAGES/messages.mo
delete mode 100644 src/lang/fr/LC_MESSAGES/messages.po
delete mode 100644 src/lang/fr/LC_MESSAGES/messages_old.po
delete mode 100644 src/lang/it/LC_MESSAGES/messages.mo
delete mode 100644 src/lang/it/LC_MESSAGES/messages.po
delete mode 100644 src/lang/messages.pot
delete mode 100644 src/lang/note.txt
delete mode 100644 src/lib/blk.png
delete mode 100644 src/lib/drapaux.gif
delete mode 100644 src/lib/en.png
delete mode 100644 src/lib/ep_function.php
delete mode 100644 src/lib/ep_header.php
delete mode 100644 src/lib/fr.png
delete mode 100644 src/lib/it.png
delete mode 100644 src/lib/status0.png
delete mode 100644 src/lib/status3.png
delete mode 100644 src/lib/status5.png
delete mode 100644 src/lib/sup.png
delete mode 100644 src/var/aliasdeny.txt
delete mode 100644 src/var/blacklist.txt
delete mode 100644 src/www/admin.php
delete mode 100644 src/www/index.php
delete mode 100644 src/www/template-exemple/ai1.png
delete mode 100644 src/www/template-exemple/ai2.png
delete mode 100644 src/www/template-exemple/ai3.png
delete mode 100644 src/www/template-exemple/ai4.png
delete mode 100644 src/www/template-exemple/ai5.png
delete mode 100644 src/www/template-exemple/ai6.png
delete mode 100644 src/www/template-exemple/ai7.png
delete mode 100644 src/www/template-exemple/ai8.png
delete mode 100644 src/www/template-exemple/hd.jpg
delete mode 100644 src/www/template-exemple/html5-ie.js
delete mode 100644 src/www/template-exemple/image-1.png
delete mode 100644 src/www/template-exemple/img1.png
delete mode 100644 src/www/template-exemple/img2.png
delete mode 100644 src/www/template-exemple/img3.png
delete mode 100644 src/www/template-exemple/img4.png
delete mode 100644 src/www/template-exemple/img5.png
delete mode 100644 src/www/template-exemple/img6.png
delete mode 100644 src/www/template-exemple/jabz-logo.png
delete mode 100644 src/www/template-exemple/jonas-jacek.png
delete mode 100644 src/www/template-exemple/readme.txt
delete mode 100644 src/www/template-exemple/style.css
diff --git a/README.md b/README.md
index 2367ae9..d3a0aec 100644
--- a/README.md
+++ b/README.md
@@ -12,6 +12,7 @@ Of course, once uninstalled, everything get back to normal.
TODO :
------
+
- [X] move to 2.0
- [ ] check nginx conf
- [X] insert clean index.php
diff --git a/conf/app.src b/conf/app.src
new file mode 100644
index 0000000..9c13023
--- /dev/null
+++ b/conf/app.src
@@ -0,0 +1,3 @@
+SOURCE_URL=https://github.com/kepon85/emailPoubelle.php/archive/d9f444c7687e3d4597d6d95c33fa96fd1332c1de.zip
+SOURCE_SUM=3ab236748b1b912c03ddf4e09c4e7f0304467adadc0012c9b8f434353fe26e46
+SOURCE_FORMAT=zip
\ No newline at end of file
diff --git a/manifest.json b/manifest.json
index eb310aa..5e21de5 100644
--- a/manifest.json
+++ b/manifest.json
@@ -7,7 +7,7 @@
"fr": "Créez des adresses email jetables qui redirigent les mails vers votre adresse réelle"
},
"url": "https://framagit.org/kepon/emailPoubellePhp/",
- "version": "2.0~ynh3",
+ "version": "2.0~ynh4",
"license": "Beerware",
"maintainer": {
"name": "krakinou",
@@ -63,13 +63,13 @@
"example": "AveryStrongPassword"
},
{
- "name": "public_site",
+ "name": "is_public",
+ "type": "boolean",
"ask": {
- "en": "Should this application be public ?",
- "fr": "Est-ce que cette application doit être visible publiquement ?"
+ "en": "Is it a public application?",
+ "fr": "Est-ce une application publique ?"
},
- "choices": ["Yes", "No"],
- "default": "No"
+ "default": false
}
]
}
diff --git a/scripts/backup b/scripts/backup
index 3273ec1..9276c92 100644
--- a/scripts/backup
+++ b/scripts/backup
@@ -62,5 +62,4 @@ ynh_backup "/etc/cron.d/$app"
# BACKUP POSTFIX & ALIASES
#=================================================
-ynh_backup $postfix
ynh_backup /etc/aliases
diff --git a/scripts/install b/scripts/install
index 72d2acd..87bad26 100644
--- a/scripts/install
+++ b/scripts/install
@@ -66,8 +66,10 @@ locale-gen
#INSTALL SOURCES
#===============================================
# Copy source files
-sudo mkdir -p $final_path
-sudo cp -R ../src/* $final_path
+
+ynh_print_info "Downloading sources to $final_path"
+# Download, check integrity, uncompress and patch the source from app.src
+ynh_setup_source "$final_path"
sudo cp ../conf/index_source.php $final_path/www/index.php
ynh_replace_string "Template-exemple" "$domain" $final_path/www/index.php
@@ -106,9 +108,9 @@ sudo chmod o-r $final_path/conf.php
ynh_mysql_create_db $db_user $db_user $db_pwd
#setting postfix to use virtual aliases file
-sudo cp $postfix $postfix.emailpoubelle.bak #backup it eventually if that causes some issues
-ynh_replace_string "^virtual_alias_maps" "#virtual_alias_maps" $postfix
-echo "virtual_alias_maps = hash:$final_path/var/virtual" | sudo tee -a $postfix
+# Add postfix configuration hook and regen postfix conf
+cp -R ../sources/hooks/conf_regen/98-postfix_emailpoubelle /usr/share/yunohost/hooks/conf_regen/
+yunohost service regen-conf postfix
#create the virtual aliases file
sudo touch $final_path/var/virtual
@@ -133,12 +135,19 @@ sudo cp ../conf/nginx.conf /etc/nginx/conf.d/$domain.d/$app.conf
# Create a dedicated nginx config
#ynh_add_nginx_config
-# If app is public, add url to SSOWat conf as skipped_uris
-if [ "$is_public" = "Yes" ];
+
+#=================================================
+# SETUP SSOWAT
+#=================================================
+
+# Make app public if necessary
+if [ $is_public -eq 1 ]
then
-sudo yunohost app setting $app skipped_uris -v "/"
+ # unprotected_uris allows SSO credentials to be passed anyway.
+ ynh_app_setting_set $app unprotected_uris "/"
fi
+
#A verifier? A integrer dans dépendances?
#adding php-cli for cron
sudo apt-get update -qq
diff --git a/scripts/remove b/scripts/remove
index 6bee0d0..b61f02c 100644
--- a/scripts/remove
+++ b/scripts/remove
@@ -21,10 +21,8 @@ sudo rm -f /etc/nginx/conf.d/$domain.d/emailpoubelle.conf
#removing aliases
sudo sed -i "/devnull:\/dev\/null/d" /etc/aliases
sudo newaliases
-#efface le nouvel virtual alias
-sudo sed -i "/virtual_alias_maps = hash:\/var\/www\/emailpoubelle\/var\/virtual/d" $postfix
-#reactive le nouveau
-ynh_replace_string "^#virtual_alias_maps" "virtual_alias_maps" $postfix
+# Remove hook for postfix conf
+ynh_secure_remove "/usr/share/yunohost/hooks/conf_regen/98-postfix_emailpoubelle"
#remove cronjob
sudo rm -f /etc/cron.d/emailpoubelle
diff --git a/scripts/restore b/scripts/restore
index 2fe1d04..10e4a46 100644
--- a/scripts/restore
+++ b/scripts/restore
@@ -1,5 +1,5 @@
#!/bin/bash
-
+
#=================================================
# GENERIC START
#=================================================
@@ -81,8 +81,9 @@ locale-gen
#=================================================
# RESTORE POSTFIX ALIASES
#=================================================
+cp -R ../sources/hooks/conf_regen/98-postfix_emailpoubelle /usr/share/yunohost/hooks/conf_regen/
+yunohost service regen-conf postfix
-ynh_restore_file $postfix
#=================================================
# RESTORE THE CRON FILE
diff --git a/scripts/upgrade b/scripts/upgrade
index 5c7e84e..a25f670 100644
--- a/scripts/upgrade
+++ b/scripts/upgrade
@@ -46,47 +46,47 @@ path_url=$(ynh_normalize_url_path $path_url)
#=================================================
#check for matlink's version
#=================================================
-
-cat /etc/yunohost/apps/$app/status.json | grep "matlink"
-if [[ $?==0 ]]; then
+#deprecated - not maintained for more than a year...
+#cat /etc/yunohost/apps/$app/status.json | grep "matlink"
+#if [[ $?==0 ]]; then
#add missing info in settings
- final_path=/var/www/$app
- db_name=emailPoubelle
- ynh_app_setting_set $app db_name $db_name
- ynh_app_setting_set $app final_path $final_path
+# final_path=/var/www/$app
+# db_name=emailPoubelle
+# ynh_app_setting_set $app db_name $db_name
+# ynh_app_setting_set $app final_path $final_path
#install geoip dependencies
- ynh_install_app_dependencies $pkg_dependencies
+# ynh_install_app_dependencies $pkg_dependencies
#install locale packages
- for i in $lang ; do
- ynh_replace_string "# $i" "$i" /etc/locale.gen
- done
- locale-gen
+# for i in $lang ; do
+# ynh_replace_string "# $i" "$i" /etc/locale.gen
+# done
+# locale-gen
#change folder locale => lang as per src2.0
- rm -rf $final_path/locale
- mkdir -p $final_path/lang
+# rm -rf $final_path/locale
+# mkdir -p $final_path/lang
#add new index.php
- cp ../conf/index_source.php $final_path/www/index.php
+# cp ../conf/index_source.php $final_path/www/index.php
#switch from previous (modified) conf.php to new one (emailpoubelle original)
- cp ../src/conf-dist.php $final_path/conf-dist.new.php
+# cp ../src/conf-dist.php $final_path/conf-dist.new.php
#insert domain in line 24, DB in line 31, DBUSER in line 32, etc.
- rep=$(cat $final_path/conf.php | grep "^[^//]" | grep "define('DOMAIN',")
- sed -i "24s/.*/${rep}/" $final_path/conf-dist.new.php
- rep=$(cat $final_path/conf.php | grep "^[^//]" | grep "define('DB',")
- sed -i "31s/.*/${rep}/" $final_path/conf-dist.new.php
- rep=$(cat $final_path/conf.php | grep "^[^//]" | grep "define('DBUSER',")
- sed -i "32s/.*/${rep}/" $final_path/conf-dist.new.php
- rep=$(cat $final_path/conf.php | grep "^[^//]" | grep "define('DBPASS',")
- sed -i "33s/.*/${rep}/" $final_path/conf-dist.new.php
+# rep=$(cat $final_path/conf.php | grep "^[^//]" | grep "define('DOMAIN',")
+# sed -i "24s/.*/${rep}/" $final_path/conf-dist.new.php
+# rep=$(cat $final_path/conf.php | grep "^[^//]" | grep "define('DB',")
+# sed -i "31s/.*/${rep}/" $final_path/conf-dist.new.php
+# rep=$(cat $final_path/conf.php | grep "^[^//]" | grep "define('DBUSER',")
+# sed -i "32s/.*/${rep}/" $final_path/conf-dist.new.php
+# rep=$(cat $final_path/conf.php | grep "^[^//]" | grep "define('DBPASS',")
+# sed -i "33s/.*/${rep}/" $final_path/conf-dist.new.php
#replace old conf and process with install command
- mv $final_path/conf.php $final_path/conf.php.old
- mv $final_path/conf-dist.new.php $final_path/conf.php
- ynh_replace_string "define('DB', 'sqlite:'" "//define('DB', 'sqlite:'" $final_path/conf.php
- ynh_replace_string "define('ALIASLIMITBYMAIL" "//define('ALIASLIMITBYMAIL" $final_path/conf.php
- #setting conf file not world-readable (dude, there is a plain-text password !)
- sudo chmod o-r $final_path/conf.php
+# mv $final_path/conf.php $final_path/conf.php.old
+# mv $final_path/conf-dist.new.php $final_path/conf.php
+# ynh_replace_string "define('DB', 'sqlite:'" "//define('DB', 'sqlite:'" $final_path/conf.php
+# ynh_replace_string "define('ALIASLIMITBYMAIL" "//define('ALIASLIMITBYMAIL" $final_path/conf.php
+# #setting conf file not world-readable (dude, there is a plain-text password !)
+# sudo chmod o-r $final_path/conf.php
-fi
+#fi
#=================================================
@@ -101,7 +101,6 @@ ynh_replace_string "index index.php;" "index www/ndex.php;" /etc/yunohost/$domai
ynh_replace_string "Template-exemple" "$domain" $final_path/www/index.php
-
#mysqlpwd setting was implemented in ynh2 - check if saved and if not implement
db_pass=$(ynh_app_setting_get $app mysqlpwd)
if [ -z $db_pass]; then
@@ -112,15 +111,9 @@ if [ -z $db_pass]; then
fi
# Copy source files
-cp -a ../src/bin/. $final_path/bin
-cp -a ../src/lib/. $final_path/lib
-cp -a ../src/lang/. $final_path/lang
-cp -a ../src/www/. $final_path/www
-cp ../src/emailPoubelle.php $final_path/emailPoubelle.php
-cp ../src/emailPoubelleAdmin.php $final_path/emailPoubelleAdmin.php
-cp ../src/README.md $final_path/README.md
-cp ../src/CHANGELOG.md $final_path/CHANGELOG.md
-cp ../src/conf-dist.php $final_path/conf-dist.php
+ynh_print_info "Downloading sources to $final_path"
+# Download, check integrity, uncompress and patch the source from app.src
+ynh_setup_source "$final_path"
cp ../conf/index_source.php $final_path/www/index.php
test -e $final_path/template-exemple
if [[ ! $? -eq 0 ]]; then
diff --git a/sources/hooks/conf_regen/98-postfix_emailpoubelle b/sources/hooks/conf_regen/98-postfix_emailpoubelle
new file mode 100644
index 0000000..39ac8ac
--- /dev/null
+++ b/sources/hooks/conf_regen/98-postfix_emailpoubelle
@@ -0,0 +1,42 @@
+#!/bin/bash
+
+set -e
+
+do_pre_regen() {
+ pending_dir=$1
+
+ # Patch postfix conf
+ postfix_main_cf="${pending_dir}/../postfix/etc/postfix/main.cf"
+
+ # FIXME : check this file actually exists to not crash when only running this
+ # hook alone
+
+ sudo sed -e "s@^alias_maps\s*=\s*\(.*\)@alias_maps = \1,hash:/var/lib/mailman/data/aliases@"\
+ -e "s@^virtual_alias_maps\s*=\s*\(.*\)@virtual_alias_maps = hash:/var/lib/mailman/data/virtual-mailman,\1@"\
+ -i $postfix_main_cf
+
+}
+
+do_post_regen() {
+
+ regen_conf_files=$1
+
+}
+
+FORCE=${2:-0}
+DRY_RUN=${3:-0}
+
+case "$1" in
+ pre)
+ do_pre_regen $4
+ ;;
+ post)
+ do_post_regen $4
+ ;;
+ *)
+ echo "hook called with unknown argument \`$1'" >&2
+ exit 1
+ ;;
+esac
+
+exit 0
\ No newline at end of file
diff --git a/src/.gitignore b/src/.gitignore
deleted file mode 100644
index e13ab03..0000000
--- a/src/.gitignore
+++ /dev/null
@@ -1,9 +0,0 @@
-/postfix
-virtual
-virtual.db
-checkupdate
-conf.php
-test*
-var/database*
-var/.htaccess
-devToProd.sh
diff --git a/src/CHANGELOG.md b/src/CHANGELOG.md
deleted file mode 100644
index 4bc5219..0000000
--- a/src/CHANGELOG.md
+++ /dev/null
@@ -1,66 +0,0 @@
-## X (future)
-
- - support postfix-mysql (not plain text virtual file)
- - javascript checkupgrade in admin page
-
-## 2.0 (2018-11)
-
- - Internationnalisation, traduction possible (fichier source dans lang/messages.pot)
- - Traduction anglais / français (merci à https://github.com/matlink pour l'anglais)
-
-## 1.4 (2018-03-19)
-
- - Interface admin avec stats, top user, possibilité de nettoyer, blacklister...
-
-## 1.2 (2018-03-19)
-
- - Ne pas permettre la création d'un alias depuis un alias
- - Limiter le nombre d'alias possible
-
-## 1.0.1 (2014-01-06)
-
-Bugfixes:
-
- - fixe ListeAlias no send email if error
-
-## 1.0 (2013-10-02)
-
-Features:
-
- - add database with PDO (remove plain text)
- support mysql, sqlite, postgresql...
- - add multi-domain support
- - add memory email (with cookies)
- - add life for alias (optional)
- - add comment for alias (optional)
- - add template for example
- - add javascript in form (noscript compatible)
- - add cron for expir life email
- - add maintenance mode
- - add basic form anti-spam
- - add disable/enable alias function
- - pass UTF-8 encode
-
-## 0.3 (2013-08-08) (without database)
-
- - add blacklist.txt regex
- - add function "alias list"
- - add shell statistique script
- - add readme
-
-## 0.2 (2012-08-05)
-
-Features:
-
- - add aliasdeny.txt regex
- - migrate to Net_DNS2
- - check email exist with DNS (check MX)
-
-Bugfixes:
-
- - fixe http://forge.zici.fr/p/emailpoubelle-php/issues/4/
-
-## 0.1b (2012-03-20)
-
- - start project
-
diff --git a/src/README.md b/src/README.md
deleted file mode 100644
index 4d81232..0000000
--- a/src/README.md
+++ /dev/null
@@ -1,44 +0,0 @@
-emailPoubelle.php
-=============
-
-Un script pour un petit service d'email jetable
-
-* [Démo](http://poubelle.zici.fr/)
-* [Page du projet](http://forge.zici.fr/p/emailpoubelle-php/)
-* [Download](http://forge.zici.fr/p/emailpoubelle-php/source/download/master/)
-* [Bug report](http://forge.zici.fr/p/emailpoubelle-php/issues/)
-
-Installation
------------
-
-Installation des dépendances :
-
- pear install Net_DNS2
-
-Télécharger & décompresser les sources :
-
- mkdir -p /www/emailPoubelle/postfix
- cd /tmp
- wget -O emailPoubelle.zip https://framagit.org/kepon/emailPoubellePhp/-/archive/master/emailPoubellePhp-master.zip
- unzip emailPoubelle.zip
- cp -r emailpoubelle-php-master/* /var/www/emailPoubelle
-
-Configure apache virtualhost (ou autres serveur http)
- [...]
- DocumentRoot /var/www/emailPoubelle/www
- [...]
-
-Configurer Postfix :
-
- vi /etc/postfix/main.cf
- [...]
- virtual_alias_maps = hash:/www/emailPoubelle/var/virtual
- touch /www/emailPoubelle/var/virtual
- /usr/sbin/postmap /www/emailPoubelle/var/virtual
- chown www-data /www/emailPoubelle/var/virtual
- chown www-data /www/emailPoubelle/var/virtual.db
-
-Ajouter dans le fichier /etc/aliases le devnull
-
- echo "devnull: /dev/null" >> /etc/aliases
- newaliases
diff --git a/src/bin/migrate-0.3-1.0.php b/src/bin/migrate-0.3-1.0.php
deleted file mode 100644
index a3bdaef..0000000
--- a/src/bin/migrate-0.3-1.0.php
+++ /dev/null
@@ -1,80 +0,0 @@
-#!/usr/bin/php
-setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
-} catch ( PDOException $e ) {
- die('Connexion à la base '.$e->getMessage());
-}
-
-// postmap command
-function UpdateVirtualDB_migrateTo10() {
- global $dbco;
- try {
- $selectcmd = $dbco->prepare("SELECT alias, email
- FROM ".DBTABLEPREFIX."alias
- WHERE status = 5
- ORDER BY id ASC");
- $selectcmd->execute();
- } catch ( PDOException $e ) {
- echo "DB error : ", $e->getMessage();
- die();
- }
- $file_content=null;
- while($alias_db = $selectcmd->fetch()) {
- $file_content .= $alias_db['alias'].' '.$alias_db['email']."\n";
- }
- $alias_file=fopen(FICHIERALIAS,'w');
- fputs($alias_file, $file_content);
- fclose($alias_file);
- exec(BIN_POSTMAP.' '.FICHIERALIAS,$output,$return);
-}
-
-
-// add new alias
-function AjouterAlias_migrateTo10($status, $alias,$email, $life, $comment) {
- global $dbco;
- $dateCreat=date('Y-m-d H:i:s', 0);
- $dateExpir=NULL;
- try {
- $insertcmd = $dbco->prepare("INSERT INTO ".DBTABLEPREFIX."alias (status, alias, email, dateCreat, dateExpir, comment)
- VALUES (:status, :alias, :email, :dateCreat, :dateExpir, :comment)");
- $insertcmd->bindParam('status', $status, PDO::PARAM_INT);
- $insertcmd->bindParam('alias', $alias, PDO::PARAM_STR);
- $insertcmd->bindParam('email', $email, PDO::PARAM_STR);
- $insertcmd->bindParam('dateCreat', $dateCreat, PDO::PARAM_STR);
- $insertcmd->bindParam('dateExpir', $dateExpir, PDO::PARAM_STR);
- $insertcmd->bindParam('comment', $comment, PDO::PARAM_STR);
- $insertcmd->execute();
- } catch ( PDOException $e ) {
- echo "DB error : ", $e->getMessage();
- die();
- }
- return $dbco->lastInsertId();
-}
-
-$handle = fopen(FICHIERALIAS, 'r');
-while (!feof($handle)) {
- $buffer = fgets($handle);
- if ($buffer) {
- $bufferExplode = explode(' ', $buffer);
- if (!preg_match('/^(#|$|;)/', $buffer)) {
- echo $bufferExplode[0].' -> '.$bufferExplode[1]."\n";
- AjouterAlias_migrateTo10(5, trim($bufferExplode[0]), trim($bufferExplode[1]), null, null);
- }
- }
-}
-fclose($handle);
-
-UpdateVirtualDB_migrateTo10();
-
-?>
diff --git a/src/conf-dist.php b/src/conf-dist.php
deleted file mode 100644
index 46e5901..0000000
--- a/src/conf-dist.php
+++ /dev/null
@@ -1,98 +0,0 @@
-/dev/null 2>&1
-define('CRON', false);
-
-// Fichier d'alias postfix
-define('FICHIERALIAS', DATA.'/virtual');
-define('BIN_POSTMAP', '/usr/sbin/postmap');
-
-define('URLPAGE', 'http://'.$_SERVER["SERVER_NAME"].$_SERVER["SCRIPT_NAME"]);
-
-// Email
-define('EMAILTAGSUJET', '[EmailPoubelle]');
-// From de l'email
-define('EMAILFROM', '"NO REPLY emailPoubelle" ');
-define('EMAILEND', 'emailPoubelle.zici.fr');
-
-// Alisas interdit : (regex ligne par ligne) - commenter pour désactiver
-define('ALIASDENY', DATA.'/aliasdeny.txt');
-
-// Blackliste d'email : (regex ligne par ligne) - commenter pour désactiver
-define('BLACKLIST', DATA.'/blacklist.txt');
-
-// Depend pear Net/DNS2
-define('CHECKMX', false);
-if (CHECKMX) {
- require_once('Net/DNS2.php');
- // Serveur DNS pour la résolution/vérification du nom de domaine
- define('NS1', 'ns1.fdn.org');
- define('NS2', '8.8.8.8');
-}
-
-// A indiquer si vous utiliser les URL's rewriting
-// Exemple avec un htaccess
-// RewriteRule ^ep-([a-z]+)-([a-zA-Z0-9+/=]+)\.html$ switch.php?page=emailPoubelle&act=$1&value=$2 [L]
-//define('URLREWRITE_START', 'http://poubelle.zici.fr/ep-');
-//define('URLREWRITE_MIDDLE', '-');
-//define('URLREWRITE_END', '.html');
-// Désactiver
-define('URLREWRITE_START', false);
-define('URLREWRITE_MIDDLE', false);
-define('URLREWRITE_END', false);
-
-// check update :
-// enable : in seconds
-// disable : false
-define('CHECKUPDATE', 86400);
-
-// Maintenance mode
-define('MAINTENANCE_MODE', false);
-// No maintenance for this ip (admin ip)
-define('MAINTENANCE_IP', '10.0.0.1');
-
-
-// Mot de passe par défaut "admin" :
-define('ADMIN_PASSWORD', 'admin');
-
-
-?>
diff --git a/src/emailPoubelle.php b/src/emailPoubelle.php
deleted file mode 100644
index 93638eb..0000000
--- a/src/emailPoubelle.php
+++ /dev/null
@@ -1,373 +0,0 @@
-'._("Debug enabled") .'
';
- echo print_r($_REQUEST);
- echo '';
-}
-
-if (!defined('DOMAIN') || !defined('DATA') || !defined('DEBUG') || !defined('FICHIERALIAS') || !defined('DB')) {
- echo ''._("Error : the configuration file conf.php might not be included because the constants are not declared").'.
';
-// check writable work directory
-} else if (!is_writable(DATA)) {
- echo ''._("Error : the working directory cannot be written. Please contact the admin").'
';
-// check alias file is_writable
-} else if (!is_writable(FICHIERALIAS)) {
- echo ''._("Error : the alias file cannot be written. Please contact the admin").'
';
-// check blacklist file is_writable
-} else if (defined('BLACKLIST') && !is_readable(BLACKLIST)) {
- echo ''._("Error : the blacklist file cannot be read. Please contact the admin").'
';
-// check aliasdeny file is_writable
-} else if (defined('ALIASDENY') && !is_readable(ALIASDENY)) {
- echo ''._("Error : the forbidden aliases file cannot be read. Please contact the admin").'
';
-// maintenance mod
-} else if (MAINTENANCE_MODE == true && MAINTENANCE_IP != $_SERVER["REMOTE_ADDR"]) {
- echo ''._("Service under maintenance").'
';
-} else {
-
-if (MAINTENANCE_MODE == true) {
- echo ''._("Service under maintenance").'
';
-}
-
-
-// Connect DB
-try {
- if (preg_match('/^sqlite/', DB)) {
- $dbco = new PDO(DB);
- } else {
- $dbco = new PDO(DB, DBUSER, DBPASS);
- }
- $dbco->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
-} catch ( PDOException $e ) {
- die('._("Connexion à la base ").'.$e->getMessage());
-}
-// Create DB if not exists
-try {
- // status : 0=not verified - 3=disable - 5=active
- if (preg_match('/^sqlite/', DB)) {
- $create = $dbco->query("CREATE TABLE IF NOT EXISTS ".DBTABLEPREFIX."alias (
- id INTEGER PRIMARY KEY,
- status INTEGER(1) NOT NULL,
- alias CHAR(150) NOT NULL UNIQUE,
- email CHAR(150) NOT NULL,
- dateCreat DATETIME NOT NULL,
- dateExpir DATETIME,
- comment TEXT);");
- } else {
- $create = $dbco->query("CREATE TABLE IF NOT EXISTS ".DBTABLEPREFIX."alias (
- id INTEGER PRIMARY KEY AUTO_INCREMENT,
- status INTEGER(1) NOT NULL,
- alias CHAR(150) NOT NULL UNIQUE,
- email CHAR(150) NOT NULL,
- dateCreat DATETIME NOT NULL,
- dateExpir DATETIME,
- comment TEXT);");
- }
-} catch ( PDOException $e ) {
- echo ''._("Error initializing tables. Please contact the admin");
- if (DEBUG) { $e->getMessage(); }
- echo '
';
- die();
-}
-
-//////////////////
-// Start program
-//////////////////
-
-// get process "act" (action)
-$action = isset($_GET['act']) ? $_GET['act'] : '';
-switch ($action) {
- case "validemail" :
- $get_value = urlUnGen($_GET['value']);
- if ($dbco->query("SELECT COUNT(*) FROM ".DBTABLEPREFIX."alias WHERE id = '".$get_value['id']."' AND status = 0")->fetchColumn() != 0) {
- UpdateStatusAlias($get_value['id'], $get_value['alias_full'], 5);
- echo ''._("Your trash email address").' '.$get_value['alias_full'].' '._("is now enabled").'
';
- } else {
- echo ''._("Error : unknown ID or already validated").'
';
- }
- break;
- case "disable" :
- $get_value = urlUnGen($_GET['value']);
- DisableAlias($get_value['id'], $get_value['alias_full'], null);
- break;
- case "enable" :
- $get_value = urlUnGen($_GET['value']);
- EnableAlias($get_value['id'], $get_value['alias_full'], null);
- break;
- case "delete" :
- $get_value = urlUnGen($_GET['value']);
- DeleteAlias($get_value['id'], $get_value['alias_full']);
- break;
- case "cron" :
- if (CRON) {
- echo ''._("The scheduled task is running").'
';
- LifeExpire();
- } else {
- echo ''._("You didn't allow the scheduled job").'
';
- }
- break;
-}
-// Form
-if (isset($_POST['username']) && $_POST['username'] != '') { // minimal anti-spam
- echo 'Hello you';
-} else if (isset($_POST['list'])) {
- $email=strtolower(StripCleanToHtml($_POST['email']));
- if (! filter_var($email, FILTER_VALIDATE_EMAIL)) {
- echo ''._("Error : email address incorrect").'
';
- } else if (! VerifMXemail($email)) {
- echo ''._("Error : email address incorrect").' (2)
';
- } else if (ListeAlias($email)) {
- echo ''._("An email has been sent to you").'
';
- } else {
- echo ''._("Error : no known active trash email").'
';
- }
-} else if (isset($_POST['email']) && isset($_POST['alias'])) {
- $alias=strtolower(StripCleanToHtml($_POST['alias']));
- $email=strtolower(StripCleanToHtml($_POST['email']));
- $domain=StripCleanToHtml($_POST['domain']);
- $life=$_POST['life'];
- $comment=StripCleanToHtml($_POST['comment']);
- $alias_full=$alias.'@'.$domain;
- // Check form
- if (! filter_var($email, FILTER_VALIDATE_EMAIL)) {
- echo ''._("Error : email address incorrect").'
';
- } else if (! VerifMXemail($email)) {
- echo ''._("Error : email address incorrect").' (2)
';
- } else if (! preg_match('#^[\w.-]+$#',$alias)) {
- echo ''._("Error : trash email address syntax incorrect").'
';
- } else if (!domainePresent($domain)) {
- echo ''._("Error : this domain cannot be used").'
';
- } else if (emailIsAlias($email)) {
- echo ''._("Error : Your email can not contain a trash domain").'
';
- } else if (AliasDeny($alias)) {
- echo ''._("Error : trash email address forbidden").'
';
- } else if (BlacklistEmail($email)) {
- echo ''._("Error : you have been blacklisted").'
';
- // add
- } elseif (isset($_POST['add'])) {
- if ($dbco->query("SELECT COUNT(*) FROM ".DBTABLEPREFIX."alias WHERE alias = '".$alias_full."'")->fetchColumn() != 0) {
- echo ''._("Error : this trash email already exists").'
';
- } else if ($dbco->query("SELECT COUNT(*) FROM ".DBTABLEPREFIX."alias WHERE email = '".$email."'")->fetchColumn() > ALIASLIMITBYMAIL) {
- echo ''._("Error: You have reached your limit quota on this app. You can
install this script on a personal server if you want more quota").'.
';
- } else {
- if ($dbco->query("SELECT COUNT(*) FROM ".DBTABLEPREFIX."alias WHERE email = '".$email."' AND status > 0")->fetchColumn() != 0) {
- AjouterAlias(5, $alias_full, $email, $life, $comment);
- echo ''._("Your trash email address").' '.$alias_full.' > '.$email.' '._("is now enabled").'
';
- } else {
- $lastId=AjouterAlias(0, $alias_full, $email, $life, $comment);
- $message= _("Confirmation of the creation of your trash email :")."\n";
- $message= $alias_full.' => '.$email."\n";
- $message= _("Click on the link below to validate :")."\n";
- $message.= "\t * ".urlGen('validemail',$lastId,$alias_full)."\n";
- $message.= "\n";
- $message.= _("To delete this trash email, click on the link below :")."\n";
- $message.= "\t * ".urlGen('delete',$lastId,$alias_full)."\n";
- $message.= "\n";
- $message.= _("After confirmation, you will be able to temporary suspend you trash email using the link below :")."\n";
- $message.= "\t * ".urlGen('disable',$lastId,$alias_full)."\n";
- SendEmail($email,_("Alias confirmation")." ".$alias,$message);
- echo ''._("Your email address").' ('.$email.') '._("is unknown, a confirmation has been sent to you.").'
';
- }
- }
- // delete
- } else if (isset($_POST['del'])) {
- if ($id = $dbco->query("SELECT id FROM ".DBTABLEPREFIX."alias WHERE email = '".$email."' AND alias = '".$alias_full."'")->fetchColumn()) {
- $message= _("Confirmation of the removal of your trash email : ")."\n";
- $message= $alias_full.' => '.$email."\n";
- $message= _("Click on the link below to validate the deletion :")."\n";
- $message.= "\t * ".urlGen('delete',$id,$alias_full)."\n\n";
- $message.= _("If you would like to temporary suspend this trash email, you can follow the link bellow :")."\n";
- $message.= "\t * ".urlGen('disable',$id,$alias_full)."\n";
- SendEmail($email,_("Alias deletion")." ".$alias,$message);
- echo ''._("An email has been sent to you").'.
';
- } else {
- echo ''._("Error : unknown trash email").'
';
- }
- // disable
- } else if (isset($_POST['disable'])) {
- DisableAlias(null, $alias_full, $email);
- // enable
- } else if (isset($_POST['enable'])) {
- EnableAlias(null, $alias_full, $email);
- }
-
- // memory email
- if (isset($_POST['memory'])) {
- setcookie ("email", StripCleanToHtml($email), time() + 31536000);
- } else if (isset($_COOKIE['email'])) {
- unset($_COOKIE['email']);
- }
-}
-
-//////////////////
-// Printing form
-//////////////////
-
-?>
-
-
-
-
-
- = VERSION ?> -
- emailPoubelle.php
-
-
diff --git a/src/emailPoubelleAdmin.php b/src/emailPoubelleAdmin.php
deleted file mode 100644
index 602d9fe..0000000
--- a/src/emailPoubelleAdmin.php
+++ /dev/null
@@ -1,174 +0,0 @@
-'._('Error: Incorrect password').'';
-}
-if (empty($_SESSION['adminPasswordHash']) || $auth == false) {
- echo '';
-}
-
-// Test connexion, si c'est ok :
-if ($auth==true) {
- languesSwitch();
- // Connect DB
- try {
- if (preg_match('/^sqlite/', DB)) {
- $dbco = new PDO(DB);
- } else {
- $dbco = new PDO(DB, DBUSER, DBPASS);
- }
- $dbco->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
- } catch ( PDOException $e ) {
- die('DB connect error : '.$e->getMessage());
- }
- if (isset($_POST['action'])) {
- if ($_POST['action'] == 'DeleteEmail' && isset($_POST['email'])) {
- DeleteEmail($_POST['email']);
- }
- if ($_POST['action'] == 'AddBlacklistEmail' && isset($_POST['email'])) {
- AddBlacklistEmail($_POST['email']);
- }
- if ($_POST['action'] == 'DeleteAlias' && isset($_POST['id']) && isset($_POST['alias'])) {
- DeleteAlias($_POST['id'], $_POST['alias']);
- }
- if ($_POST['action'] == 'DisableAlias' && isset($_POST['id']) && isset($_POST['alias'])) {
- DisableAlias($_POST['id'], $_POST['alias'], $_POST['email']);
- }
- }
- ?>
-
- '._('Statistics').' :
';
- echo '';
- echo '- '._('Total alias').' : '.$dbco->query("SELECT COUNT(*) FROM ".DBTABLEPREFIX."alias")->fetchColumn().'
';
- echo '- '._('Active alias').' : '.$dbco->query("SELECT COUNT(*) FROM ".DBTABLEPREFIX."alias WHERE status = 5")->fetchColumn().'
';
- echo '- '._('Alias suspended').' : '.$dbco->query("SELECT COUNT(*) FROM ".DBTABLEPREFIX."alias WHERE status = 3")->fetchColumn().'
';
- echo '- '._('Alias not verified').' : '.$dbco->query("SELECT COUNT(*) FROM ".DBTABLEPREFIX."alias WHERE status = 0")->fetchColumn().'
';
- //echo '- Email différent : '.$dbco->query("SELECT DISTINCT count(email) FROM ".DBTABLEPREFIX."alias WHERE status = 5")->fetchColumn().'
';
- echo '
';
-
- echo 'User info
';
- echo '';
- if (isset($_POST['email'])) {
- $requestUtilisateur = $dbco->query("SELECT * FROM ".DBTABLEPREFIX."alias WHERE email='".$_POST['email']."' ORDER BY dateCreat DESC")->fetchAll() ;
- echo 'User '.$_POST['email'].' : ';
- if (count($requestUtilisateur) != 0) {
- echo '';
- if (!BlacklistEmail($_POST['email'])) {
- echo '';
- }
- } else {
- echo 'Not found !';
- }
- echo '
';
- echo '';
- if (count($requestUtilisateur) != 0) {
- echo '';
- echo '
- Status |
- Alias |
- DateCreat |
- DateExpir |
- Comment |
-
';
- foreach ($requestUtilisateur as $utilisateur) {
- echo '
- |
- '.$utilisateur['alias'].'
-
- ';
- if ($utilisateur['status'] == 5) {
- echo '';
- }
- echo ' |
- '.$utilisateur['dateCreat'].' |
- '.$utilisateur['dateExpir'].' |
- '.$utilisateur['comment'].' |
-
';
- }
- echo '
';
- }
- }
-
- echo 'Top user
';
- $recordActifs = $dbco->query("SELECT email, count(alias) calias FROM ".DBTABLEPREFIX."alias WHERE status=5 GROUP BY email ORDER BY calias DESC LIMIT 40")->fetchAll();
- echo '';
- echo '
- Email |
- Number of alias |
- Action |
-
';
- foreach ($recordActifs as $recordActif) {
- echo '
- ';
- if (BlacklistEmail($recordActif['email'])) {
- echo ' ';
- }
- echo $recordActif['email'].' |
- '.$recordActif['calias'].' |
-
-
- ';
- if (!BlacklistEmail($recordActif['email'])) {
- echo '';
- }
- echo '
- |
-
';
- }
- echo '
';
-
-}
-
-
-
-?>
diff --git a/src/lang/fr/LC_MESSAGES/messages.mo b/src/lang/fr/LC_MESSAGES/messages.mo
deleted file mode 100644
index 3c3c06eb85c9e760e6bf009cced9fa09485b9c98..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001
literal 8200
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
diff --git a/src/lang/fr/LC_MESSAGES/messages.po b/src/lang/fr/LC_MESSAGES/messages.po
deleted file mode 100644
index 098c3bb..0000000
--- a/src/lang/fr/LC_MESSAGES/messages.po
+++ /dev/null
@@ -1,369 +0,0 @@
-msgid ""
-msgstr ""
-"Project-Id-Version: \n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2018-11-16 12:45+0100\n"
-"PO-Revision-Date: 2018-11-16 13:02+0100\n"
-"Last-Translator: \n"
-"Language-Team: \n"
-"Language: fr_FR\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Report-msgstr-Bugs-To: \n"
-"X-Generator: Poedit 2.0.6\n"
-"Plural-Forms: nplurals=2; plural=(n > 1);\n"
-
-#: emailPoubelleAdmin.php:27
-msgid "Error: Incorrect password"
-msgstr "Erreur : mot de passe incorrect"
-
-#: emailPoubelleAdmin.php:75
-msgid "Statistics"
-msgstr "Statistique"
-
-#: emailPoubelleAdmin.php:77
-msgid "Total alias"
-msgstr "Alias total"
-
-#: emailPoubelleAdmin.php:78
-msgid "Active alias"
-msgstr "Alias actif"
-
-#: emailPoubelleAdmin.php:79
-msgid "Alias suspended"
-msgstr "Alias suspendu"
-
-#: emailPoubelleAdmin.php:80
-msgid "Alias not verified"
-msgstr "Alias non vérifié"
-
-#: emailPoubelleAdmin.php:86
-msgid "User email"
-msgstr "Email de l'utilisateur"
-
-#: emailPoubelle.php:22
-msgid "Debug enabled"
-msgstr "Debug activé"
-
-#: emailPoubelle.php:28
-msgid "Error : the configuration file conf.php might not be included because the constants are not declared"
-msgstr "Erreur : Il ne semble pas que le fichier de configuration conf.php soit inclue car les constantes ne sont pas présentes"
-
-#: emailPoubelle.php:31
-msgid "Error : the working directory cannot be written. Please contact the admin"
-msgstr "Erreur : le répertoire de travail ne peut pas être écrit. Merci de contacter l\\'administrateur"
-
-#: emailPoubelle.php:34
-msgid "Error : the alias file cannot be written. Please contact the admin"
-msgstr "Erreur : le fichier d\\'alias ne peut pas être écrit. Merci de contacter l\\'administrateur"
-
-#: emailPoubelle.php:37
-msgid "Error : the blacklist file cannot be read. Please contact the admin"
-msgstr "Erreur : un fichier de blacklist est renseigné mais n\\'est pas lisible. Merci de contacter l\\'administrateur"
-
-#: emailPoubelle.php:40
-msgid "Error : the forbidden aliases file cannot be read. Please contact the admin"
-msgstr "Erreur : un fichier d\\'alias interdit est renseigné mais n\\'est pas lisible. Merci de contacter l\\'administrateur"
-
-#: emailPoubelle.php:43 emailPoubelle.php:47
-msgid "Service under maintenance"
-msgstr "Le service est en maintenance"
-
-#: emailPoubelle.php:85
-msgid "Error initializing tables. Please contact the admin"
-msgstr "Erreur à l\\'initialisation des tables. Merci de contacter l'administrateur"
-
-#: emailPoubelle.php:102 emailPoubelle.php:173
-msgid "Your trash email address"
-msgstr "Votre email poubelle"
-
-#: emailPoubelle.php:102 emailPoubelle.php:173
-msgid "is now enabled"
-msgstr "est maintenant actif"
-
-#: emailPoubelle.php:104
-msgid "Error : unknown ID or already validated"
-msgstr "Erreur : ID introuvable ou déjà validé"
-
-#: emailPoubelle.php:121
-msgid "The scheduled task is running"
-msgstr "La tâche planifié est lancé"
-
-#: emailPoubelle.php:124
-msgid "You didn't allow the scheduled job"
-msgstr "Vous n\\'avez pas autorisé le lancement par tâche planifié"
-
-#: emailPoubelle.php:134 emailPoubelle.php:136 emailPoubelle.php:151
-#: emailPoubelle.php:153
-msgid "Error : email address incorrect"
-msgstr "Erreur : Adresse email incorrect"
-
-#: emailPoubelle.php:138 emailPoubelle.php:200
-msgid "An email has been sent to you"
-msgstr "Un email vient de vous être envoyé"
-
-#: emailPoubelle.php:140
-msgid "Error : no known active trash email"
-msgstr "Erreur : aucun email actif connu"
-
-#: emailPoubelle.php:155
-msgid "Error : trash email address syntax incorrect"
-msgstr "Erreur : Format de l\\'email poubelle incorrect"
-
-#: emailPoubelle.php:157
-msgid "Error : this domain cannot be used"
-msgstr "Erreur : ce domain n\\'est pas pris en charge"
-
-#: emailPoubelle.php:159
-msgid "Error : Your email can not contain a trash domain"
-msgstr "Erreur : votre email ne peut pas être un email poubelle"
-
-#: emailPoubelle.php:161
-msgid "Error : trash email address forbidden"
-msgstr "Erreur : email poubelle interdit"
-
-#: emailPoubelle.php:163
-msgid "Error : you have been blacklisted"
-msgstr "Erreur : vous avez été blacklisté sur ce service"
-
-#: emailPoubelle.php:167
-msgid "Error : this trash email already exists"
-msgstr "Erreur : cet email poubelle est déjà utilisé"
-
-#: emailPoubelle.php:169
-msgid "Error: You have reached your limit quota on this app. You can install this script on a personal server if you want more quota"
-msgstr "Erreur : Vous avez atteind votre quota limite d'alias sur cette application. Vous pouvez installer ce script sur un serveur personnel si vous voulez plus de quota"
-
-#: emailPoubelle.php:176
-msgid "Confirmation of the creation of your trash email :"
-msgstr "Confirmation de la création de votre email poubelle :"
-
-#: emailPoubelle.php:178
-msgid "Click on the link below to validate :"
-msgstr "Cliquer sur le lien ci-dessous pour confirmer :"
-
-#: emailPoubelle.php:181
-msgid "To delete this trash email, click on the link below :"
-msgstr "Pour supprimer cet email poubelle vous pouvez vous rendre sur le lien ci-dessous :"
-
-#: emailPoubelle.php:184
-msgid "After confirmation, you will be able to temporary suspend you trash email using the link below :"
-msgstr "Après confirmation, vous pourrez suspendre temporairement cet email poubelle vous pouvez vous rendre sur le lien ci-dessous :"
-
-#: emailPoubelle.php:186
-msgid "Alias confirmation"
-msgstr "Confirmation alias"
-
-#: emailPoubelle.php:187
-msgid "Your email address"
-msgstr "Votre email"
-
-#: emailPoubelle.php:187
-msgid "is unknown, a confirmation has been sent to you."
-msgstr "nous étant inconnu, une confirmation vous a été envoyé par email."
-
-#: emailPoubelle.php:193
-msgid "Confirmation of the removal of your trash email : "
-msgstr "Confirmation de la suppression de votre email poubelle "
-
-#: emailPoubelle.php:195
-msgid "Click on the link below to validate the deletion :"
-msgstr "Cliquer sur le lien ci-dessous pour confirmer la suppression :"
-
-#: emailPoubelle.php:197
-msgid "If you would like to temporary suspend this trash email, you can follow the link bellow :"
-msgstr "Sinon pour suspendre temporairement cet email poubelle vous pouvez vous rendre sur le lien ci-dessous :"
-
-#: emailPoubelle.php:199
-msgid "Alias deletion"
-msgstr "Suppression de l'alias"
-
-#: emailPoubelle.php:202
-msgid "Error : unknown trash email"
-msgstr "Erreur : impossible de trouver cet email poubelle"
-
-#: emailPoubelle.php:230
-msgid "Add"
-msgstr "Ajouter"
-
-#: emailPoubelle.php:231
-msgid "List"
-msgstr "Lister"
-
-#: emailPoubelle.php:232 emailPoubelle.php:274
-msgid "Delete"
-msgstr "Supprimer"
-
-#: emailPoubelle.php:233 emailPoubelle.php:275
-msgid "Suspend"
-msgstr "Suspendre"
-
-#: emailPoubelle.php:234 emailPoubelle.php:276
-msgid "Resume"
-msgstr "Reprendre"
-
-#: emailPoubelle.php:238
-msgid "Your real email address"
-msgstr "Votre email réel"
-
-#: emailPoubelle.php:241
-msgid "Remember"
-msgstr "Mémoriser"
-
-#: emailPoubelle.php:244
-msgid "Name of your trash email address"
-msgstr "Nom de l'email poubelle"
-
-#: emailPoubelle.php:245
-msgid "Ex : john_shop"
-msgstr "Ex : jean-petiteannonce"
-
-#: emailPoubelle.php:258
-msgid "Unlimited time"
-msgstr "Illimité"
-
-#: emailPoubelle.php:259
-msgid "2 hours"
-msgstr "2 heure"
-
-#: emailPoubelle.php:260
-msgid "6 hours"
-msgstr "6 heures"
-
-#: emailPoubelle.php:261
-msgid "1 day"
-msgstr "1 jour"
-
-#: emailPoubelle.php:262
-msgid "7 days"
-msgstr "7 jours"
-
-#: emailPoubelle.php:263
-msgid "15 days"
-msgstr "15 jours"
-
-#: emailPoubelle.php:264
-msgid "30 days"
-msgstr "30 jours"
-
-#: emailPoubelle.php:265
-msgid "90 days"
-msgstr "90 jours"
-
-#: emailPoubelle.php:269
-msgid "Comment for this trash email (for your to remember)"
-msgstr "Un commentaire pour l'ajout ? (pour votre mémoire)"
-
-#: emailPoubelle.php:270
-msgid "Ex : Inscription sur zici.fr"
-msgstr "Ex : Inscription sur zici.fr"
-
-#: emailPoubelle.php:273
-msgid "Activate"
-msgstr "Activer"
-
-#: emailPoubelle.php:362
-msgid "Version"
-msgstr "Version"
-
-#: emailPoubelle.php:362
-msgid "Created by David Mercereau under licence GNU GPL v3"
-msgstr "Créé par David Mercereau sous licence GNU GPL v3"
-
-#: emailPoubelle.php:363
-msgid "Download and use this script on the project website"
-msgstr "Télécharger et utiliser ce script sur le site du projet"
-
-#: ep_function.php:93
-msgid "has been deleted with all these aliases"
-msgstr "a été supprimé avec tout ces alias"
-
-#: ep_function.php:99
-msgid "Erreur"
-msgstr "Erreur"
-
-#: ep_function.php:99
-msgid "has not been deleted"
-msgstr "n'a pas été supprimé"
-
-#: ep_function.php:120
-msgid "has been deleted"
-msgstr "a bien été supprimé"
-
-#: ep_function.php:126
-msgid "Error: email trash unknown"
-msgstr "Erreur : email poubelle inconnu"
-
-#: ep_function.php:145 ep_function.php:173
-msgid "Error: Can not find this trash email"
-msgstr "Erreur : impossible de trouver cet email poubelle"
-
-#: ep_function.php:148 ep_function.php:150 ep_function.php:152
-#: ep_function.php:176 ep_function.php:178 ep_function.php:180
-msgid "The reception on"
-msgstr "La réception sur"
-
-#: ep_function.php:148
-msgid "is active again"
-msgstr "est maintenant activé"
-
-#: ep_function.php:150
-msgid "is already active"
-msgstr "est déjà activé"
-
-#: ep_function.php:152
-msgid "has not been confirmed by email"
-msgstr "n\\'à pas été confirmé par email"
-
-#: ep_function.php:154 ep_function.php:182
-msgid "Error: unknown status"
-msgstr "Erreur : statu inconnu"
-
-#: ep_function.php:176
-msgid "is now suspended"
-msgstr "est maintenant suspendu"
-
-#: ep_function.php:178
-msgid "is already suspended"
-msgstr "est déjà suspendu"
-
-#: ep_function.php:180
-msgid "can not be suspended because it has not been activated yet"
-msgstr "ne peut pas être suspendu car il n'a pas encore été activé"
-
-#: ep_function.php:254
-msgid "List trash email activate"
-msgstr "Liste de vos email poubelles actif"
-
-#: ep_function.php:257
-msgid "List trash email disable"
-msgstr "Liste de vos email poubelles désactivé"
-
-#: ep_function.php:259
-msgid "Create "
-msgstr "Créer le "
-
-#: ep_function.php:261
-msgid "and expires on"
-msgstr "an expire le"
-
-#: ep_function.php:265
-msgid "Comment :"
-msgstr "Commentaire :"
-
-#: ep_function.php:268
-msgid "Disable :"
-msgstr "Désactivé :"
-
-#: ep_function.php:271
-msgid "Activate :"
-msgstr "Activé :"
-
-#: ep_function.php:274
-msgid "Delete :"
-msgstr "Supprimé :"
-
-#: ep_function.php:280
-msgid "List trash email"
-msgstr "Liste email poubelle"
diff --git a/src/lang/fr/LC_MESSAGES/messages_old.po b/src/lang/fr/LC_MESSAGES/messages_old.po
deleted file mode 100644
index 863a2ce..0000000
--- a/src/lang/fr/LC_MESSAGES/messages_old.po
+++ /dev/null
@@ -1,312 +0,0 @@
-msgid ""
-msgstr ""
-"Project-Id-Version: \n"
-"Report-Msgid-Bugs-To: \n"
-"PO-Revision-Date: 2018-11-16 12:57+0100\n"
-"Last-Translator: \n"
-"Language-Team: \n"
-"Language: fr_FR\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Report-msgstr-Bugs-To: \n"
-"X-Generator: Poedit 2.0.6\n"
-"Plural-Forms: nplurals=2; plural=(n > 1);\n"
-"POT-Creation-Date: \n"
-
-msgid "1 hours"
-msgstr "1 hour"
-
-msgid "15 hours"
-msgstr "15 hours"
-
-msgid "2 hours"
-msgstr "2 heure"
-
-msgid "30 hours"
-msgstr "30 hours"
-
-msgid "6 hours"
-msgstr "6 heures"
-
-msgid "7 hours"
-msgstr "7 hours"
-
-msgid "90 hours"
-msgstr "90 hours"
-
-msgid "Activate"
-msgstr "Activer"
-
-msgid "Activate :"
-msgstr "Activé : "
-
-msgid "Active alias"
-msgstr "Alias actif"
-
-msgid "Add"
-msgstr "Ajouter"
-
-msgid ""
-"After confirmation, you will be able to temporary suspend you trash email "
-"using the link below :"
-msgstr ""
-"Après confirmation, vous pourrez suspendre temporairement cet email poubelle "
-"vous pouvez vous rendre sur le lien ci-dessous : "
-
-msgid "Alias confirmation"
-msgstr "Confirmation alias "
-
-msgid "Alias deletion"
-msgstr "Suppression de l\\'alias "
-
-msgid "Alias not verified"
-msgstr "Alias non vérifié"
-
-msgid "Alias suspended"
-msgstr "Alias suspendu"
-
-msgid "An email has been sent to you"
-msgstr "Un email vient de vous être envoyé"
-
-msgid "Click on the link below to validate :"
-msgstr "Cliquer sur le lien ci-dessous pour confirmer"
-
-msgid "Click on the link below to validate the deletion :"
-msgstr "Cliquer sur le lien ci-dessous pour confirmer la suppression : "
-
-msgid "Comment :"
-msgstr "Commentaire"
-
-msgid "Comment for this trash email (for your to remember)"
-msgstr "Un commentaire pour l'ajout ? (pour votre mémoire)"
-
-msgid "Confirmation of the creation of your trash email :"
-msgstr "Confirmation de la création de votre email poubelle"
-
-msgid "Confirmation of the removal of your trash email : "
-msgstr "Confirmation de la suppression de votre email poubelle"
-
-msgid "Created by David Mercereau under licence GNU GPL v3"
-msgstr "Créé par David Mercereau sous licence GNU GPL v3"
-
-msgid "Créé le"
-msgstr "Crée le"
-
-msgid "Debug enabled"
-msgstr "Debug activé"
-
-msgid "Delete"
-msgstr "Supprimer"
-
-msgid "Delete :"
-msgstr "Supprimé : "
-
-msgid "Disable :"
-msgstr "Désactivé : "
-
-msgid "Download and use this script on the project website"
-msgstr "Télécharger et utiliser ce script sur le site du projet"
-
-msgid "Erreur"
-msgstr "Erreur"
-
-msgid "Error : Your email can not contain a trash domain"
-msgstr "Erreur : votre email ne peut pas être un email poubelle"
-
-msgid "Error : email address incorrect"
-msgstr "Erreur : Adresse email incorrect"
-
-msgid "Error : no known active trash email"
-msgstr "Erreur : aucun email actif connu"
-
-msgid "Error : the alias file cannot be written. Please contact the admin"
-msgstr ""
-"Erreur : le fichier d\\'alias ne peut pas être écrit. Merci de contacter l"
-"\\'administrateur"
-
-msgid "Error : the blacklist file cannot be read. Please contact the admin"
-msgstr ""
-"Erreur : un fichier de blacklist est renseigné mais n\\'est pas lisible. "
-"Merci de contacter l\\'administrateur"
-
-msgid ""
-"Error : the configuration file conf.php might not be included because the "
-"constants are not declared"
-msgstr ""
-"Erreur : Il ne semble pas que le fichier de configuration conf.php soit "
-"inclue car les constantes ne sont pas présentes"
-
-msgid ""
-"Error : the forbidden aliases file cannot be read. Please contact the admin"
-msgstr ""
-"Erreur : un fichier d\\'alias interdit est renseigné mais n\\'est pas "
-"lisible. Merci de contacter l\\'administrateur"
-
-msgid ""
-"Error : the working directory cannot be written. Please contact the admin"
-msgstr ""
-"Erreur : le répertoire de travail ne peut pas être écrit. Merci de contacter "
-"l\\'administrateur"
-
-msgid "Error : this domain cannot be used"
-msgstr "Erreur : ce domain n\\'est pas pris en charge"
-
-msgid "Error : this trash email already exists"
-msgstr "Erreur : cet email poubelle est déjà utilisé"
-
-msgid "Error : trash email address forbidden"
-msgstr "Erreur : email poubelle interdit"
-
-msgid "Error : trash email address syntax incorrect"
-msgstr "Erreur : Format de l\\'email poubelle incorrect"
-
-msgid "Error : unknown ID or already validated"
-msgstr "Erreur : ID introuvable ou déjà validé"
-
-msgid "Error : unknown trash email"
-msgstr "Erreur : impossible de trouver cet email poubelle"
-
-msgid "Error : you have been blacklisted"
-msgstr "Erreur : vous avez été blacklisté sur ce service"
-
-msgid "Error initializing tables. Please contact the admin"
-msgstr ""
-"Erreur à l\\'initialisation des tables. Merci de contacter l"
-"\\'administrateur "
-
-msgid "Error: Can not find this trash email"
-msgstr "Erreur : impossible de trouver cet email poubelle"
-
-msgid "Error: Incorrect password"
-msgstr "Erreur : mot de passe incorrect"
-
-msgid ""
-"Error: You have reached your limit quota on this app. You can install this script on a "
-"personal server if you want more quota"
-msgstr ""
-"Erreur : Vous avez atteind votre quota limite d'alias sur cette "
-"application. Vous pouvez installer ce script sur un serveur personnel si vous voulez plus de "
-"quota."
-
-msgid "Error: email trash unknown"
-msgstr "Erreur : email poubelle inconnu"
-
-msgid "Error: unknown status"
-msgstr "Erreur : statu inconnu"
-
-msgid "Ex : Inscription sur zici.fr"
-msgstr "Ex : Inscription sur zici.fr"
-
-msgid "Ex : john_shop"
-msgstr "Ex : jean-petiteannonce"
-
-msgid ""
-"If you would like to temporary suspend this trash email, you can follow the "
-"link bellow :"
-msgstr ""
-"Sinon pour suspendre temporairement cet email poubelle vous pouvez vous "
-"rendre sur le lien ci-dessous : "
-
-msgid "List"
-msgstr "Lister"
-
-msgid "List trash email"
-msgstr "Liste email poubelle"
-
-msgid "List trash email activate"
-msgstr "Liste de vos email poubelles actif"
-
-msgid "List trash email disable"
-msgstr "Liste de vos email poubelles désactivé"
-
-msgid "Name of your trash email address"
-msgstr "Nom de l'email poubelle"
-
-msgid "Remember"
-msgstr "Mémoriser"
-
-msgid "Resume"
-msgstr "Reprendre"
-
-msgid "Service under maintenance"
-msgstr "Le service est en maintenance"
-
-msgid "Statistics"
-msgstr "Statistique"
-
-msgid "Suspend"
-msgstr "Suspendre"
-
-msgid "The reception on"
-msgstr "La réception sur"
-
-msgid "The scheduled task is running"
-msgstr "La tâche planifié est lancé"
-
-msgid "To delete this trash email, click on the link below :"
-msgstr ""
-"Pour supprimer cet email poubelle vous pouvez vous rendre sur le lien ci-"
-"dessous :"
-
-msgid "Total alias"
-msgstr "Alias total"
-
-msgid "Unlimited time"
-msgstr "Illimité"
-
-msgid "User email"
-msgstr "Email de l'utilisateur"
-
-msgid "Version"
-msgstr "Version"
-
-msgid "You didn't allow the scheduled job"
-msgstr "Vous n\\'avez pas autorisé le lancement par tâche planifié"
-
-msgid "Your email address"
-msgstr "Votre email "
-
-msgid "Your real email address"
-msgstr "Votre email réel"
-
-msgid "Your trash email address"
-msgstr "Votre email poubelle"
-
-msgid "can not be suspended because it has not been activated yet"
-msgstr "ne peut pas être suspendu car il n'a pas encore été activé"
-
-msgid "et expire le"
-msgstr "et expire le"
-
-msgid "has been deleted"
-msgstr "a bien été supprimé"
-
-msgid "has been deleted with all these aliases"
-msgstr "a été supprimé avec tout ces alias"
-
-msgid "has not been confirmed by email"
-msgstr "n\\'à pas été confirmé par email"
-
-msgid "has not been deleted"
-msgstr "n'a pas été supprimé"
-
-msgid "is active again"
-msgstr "est maintenant activé"
-
-msgid "is already active"
-msgstr "est déjà activé"
-
-msgid "is already suspended"
-msgstr "Est déjà suspendu"
-
-msgid "is now enabled"
-msgstr "est maintenant actif"
-
-msgid "is now suspended"
-msgstr "Est maintenant suspendu"
-
-msgid "is unknown, a confirmation has been sent to you."
-msgstr "nous étant inconnu, une confirmation vous a été envoyé par email."
diff --git a/src/lang/it/LC_MESSAGES/messages.mo b/src/lang/it/LC_MESSAGES/messages.mo
deleted file mode 100644
index 5cd447c50f27783b28cfac4a3c5591d8fbb09f01..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001
literal 8051
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
MTsytkA-9eG1rpyK>Hq)$
diff --git a/src/lang/it/LC_MESSAGES/messages.po b/src/lang/it/LC_MESSAGES/messages.po
deleted file mode 100644
index 0a56633..0000000
--- a/src/lang/it/LC_MESSAGES/messages.po
+++ /dev/null
@@ -1,399 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
-# This file is distributed under the same license as the PACKAGE package.
-# FIRST AUTHOR , YEAR.
-#
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: PACKAGE VERSION\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2018-11-16 12:45+0100\n"
-"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
-"Last-Translator: FULL NAME \n"
-"Language-Team: LANGUAGE \n"
-"Language: it_IT\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-
-#: emailPoubelleAdmin.php:27
-msgid "Error: Incorrect password"
-msgstr "Errore : Password è errata"
-
-#: emailPoubelleAdmin.php:75
-msgid "Statistics"
-msgstr "Statistica"
-
-#: emailPoubelleAdmin.php:77
-msgid "Total alias"
-msgstr "Alias Total"
-
-#: emailPoubelleAdmin.php:78
-msgid "Active alias"
-msgstr "Alias attivi"
-
-#: emailPoubelleAdmin.php:79
-msgid "Alias suspended"
-msgstr "Alias Sospesi"
-
-#: emailPoubelleAdmin.php:80
-msgid "Alias not verified"
-msgstr "Alias non verificati"
-
-#: emailPoubelleAdmin.php:86
-msgid "User email"
-msgstr "Email dell'utente"
-
-#: emailPoubelle.php:22
-msgid "Debug enabled"
-msgstr "Debug abilitato"
-
-#: emailPoubelle.php:28
-msgid ""
-"Error : the configuration file conf.php might not be included because the "
-"constants are not declared"
-msgstr ""
-"Errore : Il file di configurazione conf.php forse non è incluso "
-" perché i constanti non sono dichiarate"
-
-#: emailPoubelle.php:31
-msgid ""
-"Error : the working directory cannot be written. Please contact the admin"
-msgstr ""
-"Errore : il directory corrente non puo essere modificato. "
-"Contatta l'amministratore per favore."
-
-#: emailPoubelle.php:34
-msgid "Error : the alias file cannot be written. Please contact the admin"
-msgstr "Errore : il alias file non puo essere modificato. "
-"Contatta l'amministratore per favore."
-
-#: emailPoubelle.php:37
-msgid "Error : the blacklist file cannot be read. Please contact the admin"
-msgstr "Errore : il file della lista nera non puo essere modificato. "
-"Contatta l'amministratore per favore."
-
-#: emailPoubelle.php:40
-msgid ""
-"Error : the forbidden aliases file cannot be read. Please contact the admin"
-msgstr ""
-"Errore : Il proibito alias file non puo essere modificato."
-"Contatta l'amministratore per favore."
-
-#: emailPoubelle.php:43 emailPoubelle.php:47
-msgid "Service under maintenance"
-msgstr "Servizio in manutenzione"
-
-#: emailPoubelle.php:85
-msgid "Error initializing tables. Please contact the admin"
-msgstr "Errore per inizializzare le tabelle. Per favore contatta "
-"l'amministratore"
-
-#: emailPoubelle.php:102 emailPoubelle.php:173
-msgid "Your trash email address"
-msgstr "Il tuo email rifiuti indirizzo"
-
-#: emailPoubelle.php:102 emailPoubelle.php:173
-msgid "is now enabled"
-msgstr "è adesso attivo"
-
-#: emailPoubelle.php:104
-msgid "Error : unknown ID or already validated"
-msgstr "Errore : ID non è conosciuto o già validato"
-
-#: emailPoubelle.php:121
-msgid "The scheduled task is running"
-msgstr "L'attività pianificate è in esecuzione "
-
-#: emailPoubelle.php:124
-msgid "You didn't allow the scheduled job"
-msgstr "L'attività pianificate non è autorizata"
-
-#: emailPoubelle.php:134 emailPoubelle.php:136 emailPoubelle.php:151
-#: emailPoubelle.php:153
-msgid "Error : email address incorrect"
-msgstr "Errore : Indirizzo email errato"
-
-#: emailPoubelle.php:138 emailPoubelle.php:200
-msgid "An email has been sent to you"
-msgstr "Ti è stata inviata un'email"
-
-#: emailPoubelle.php:140
-msgid "Error : no known active trash email"
-msgstr "Errore : Nessun'email rifiuti attiva conosciuta"
-
-#: emailPoubelle.php:155
-msgid "Error : trash email address syntax incorrect"
-msgstr "Errore : La sintassi dell'indorizzo email rifiuti è errata"
-
-#: emailPoubelle.php:157
-msgid "Error : this domain cannot be used"
-msgstr "Errore : Il dominio non puo essere utilizzato"
-
-#: emailPoubelle.php:159
-msgid "Error : Your email can not contain a trash domain"
-msgstr "Errore : La tua email non puo contenare un dominio rifiuti"
-
-#: emailPoubelle.php:161
-msgid "Error : trash email address forbidden"
-msgstr "Errore : Indirizzo email rifiuti vietato"
-
-#: emailPoubelle.php:163
-msgid "Error : you have been blacklisted"
-msgstr "Errore : Sei stato nella lista nera"
-
-#: emailPoubelle.php:167
-msgid "Error : this trash email already exists"
-msgstr "Errore : Questo email rifiuti esista già"
-
-#: emailPoubelle.php:169
-msgid ""
-"Error: You have reached your limit quota on this app. You can install this script on a "
-"personal server if you want more quota"
-msgstr ""
-"Errore : Hai raggiunto la tua limite su questa app. Puoi installare questo script "
-"su un server personale se vuoi più quota"
-
-#: emailPoubelle.php:176
-msgid "Confirmation of the creation of your trash email :"
-msgstr "Confirmazione della creazione della tua email rifiuti"
-
-#: emailPoubelle.php:178
-msgid "Click on the link below to validate :"
-msgstr "Clicca sul link sottostante per confermare"
-
-#: emailPoubelle.php:181
-msgid "To delete this trash email, click on the link below :"
-msgstr "per sopprimere questa email rifiuti, clicca sul link sottostante"
-
-#: emailPoubelle.php:184
-msgid ""
-"After confirmation, you will be able to temporary suspend you trash email "
-"using the link below :"
-msgstr ""
-"Doppo confermazione, sara possibile di temporanea sospendere la tua email"
-"rifiuti con il link sottostante"
-
-#: emailPoubelle.php:186
-msgid "Alias confirmation"
-msgstr "Alias confermazione"
-
-#: emailPoubelle.php:187
-msgid "Your email address"
-msgstr "Il tuo indirizzo email"
-
-#: emailPoubelle.php:187
-msgid "is unknown, a confirmation has been sent to you."
-msgstr "non è conosciuto, una confermazione richiesta ti es stata inviata"
-
-#: emailPoubelle.php:193
-msgid "Confirmation of the removal of your trash email : "
-msgstr "Confermazione per la soppressione della tua email rifiuti"
-
-#: emailPoubelle.php:195
-msgid "Click on the link below to validate the deletion :"
-msgstr "Clicca sul link sottostante per confermare la soppressione"
-
-#: emailPoubelle.php:197
-msgid ""
-"If you would like to temporary suspend this trash email, you can follow the "
-"link bellow :"
-msgstr ""
-"Se vuoi temporeano sospendere la tua email rifiuti, clicca sul link "
-"sottostante"
-
-#: emailPoubelle.php:199
-msgid "Alias deletion"
-msgstr "Alias cancellatura"
-
-#: emailPoubelle.php:202
-msgid "Error : unknown trash email"
-msgstr "Errore : Email rifiuti non è conosciuta"
-
-#: emailPoubelle.php:230
-msgid "Add"
-msgstr "Aggiungere"
-
-#: emailPoubelle.php:231
-msgid "List"
-msgstr "Listare"
-
-#: emailPoubelle.php:232 emailPoubelle.php:274
-msgid "Delete"
-msgstr "Sopprimere"
-
-#: emailPoubelle.php:233 emailPoubelle.php:275
-msgid "Suspend"
-msgstr "Sospendere"
-
-#: emailPoubelle.php:234 emailPoubelle.php:276
-msgid "Resume"
-msgstr "Riprendere"
-
-#: emailPoubelle.php:238
-msgid "Your real email address"
-msgstr "Il tuo vero email indirizzo"
-
-#: emailPoubelle.php:241
-msgid "Remember"
-msgstr "Ricordarsi"
-
-#: emailPoubelle.php:244
-msgid "Name of your trash email address"
-msgstr "Il nome dello tuo email rifiuti indirizzo"
-
-#: emailPoubelle.php:245
-msgid "Ex : john_shop"
-msgstr "Ex : john_shop"
-
-#: emailPoubelle.php:258
-msgid "Unlimited time"
-msgstr "Tempo illimitato"
-
-#: emailPoubelle.php:259
-msgid "2 hours"
-msgstr "2 ore"
-
-#: emailPoubelle.php:260
-msgid "6 hours"
-msgstr "6 ore"
-
-#: emailPoubelle.php:261
-msgid "1 day"
-msgstr "1 giorno"
-
-#: emailPoubelle.php:262
-msgid "7 days"
-msgstr "7 giorni"
-
-#: emailPoubelle.php:263
-msgid "15 days"
-msgstr "15 giorni"
-
-#: emailPoubelle.php:264
-msgid "30 days"
-msgstr "30 giorni"
-
-#: emailPoubelle.php:265
-msgid "90 days"
-msgstr "90 giorni"
-
-#: emailPoubelle.php:269
-msgid "Comment for this trash email (for your to remember)"
-msgstr "Commento su questa email rifiuti (per ricordarti)"
-
-#: emailPoubelle.php:270
-msgid "Ex : Inscription sur zici.fr"
-msgstr "Ex: Iscrizione su zici.fr"
-
-#: emailPoubelle.php:273
-msgid "Activate"
-msgstr "Attivare"
-
-#: emailPoubelle.php:362
-msgid "Version"
-msgstr "Versione"
-
-#: emailPoubelle.php:362
-msgid "Created by David Mercereau under licence GNU GPL v3"
-msgstr "Creato da David Mercereau sotto la licenza GNU GPL v3"
-
-#: emailPoubelle.php:363
-msgid "Download and use this script on the project website"
-msgstr "Scarica é utiliza questo script sul website del projetto"
-
-#: ep_function.php:93
-msgid "has been deleted with all these aliases"
-msgstr "e stato cancellato con tutti i alias"
-
-#: ep_function.php:99
-msgid "Erreur"
-msgstr "Errore"
-
-#: ep_function.php:99
-msgid "has not been deleted"
-msgstr "non e stato cancellato"
-
-#: ep_function.php:120
-msgid "has been deleted"
-msgstr "e stato cancellato"
-
-#: ep_function.php:126
-msgid "Error: email trash unknown"
-msgstr "Errore : Email rifiuti non è conosciuta"
-
-#: ep_function.php:145 ep_function.php:173
-msgid "Error: Can not find this trash email"
-msgstr "Errore : Questa email rifiuti non è stata trovata"
-
-#: ep_function.php:148 ep_function.php:150 ep_function.php:152
-#: ep_function.php:176 ep_function.php:178 ep_function.php:180
-msgid "The reception on"
-msgstr "La ricezione su"
-
-#: ep_function.php:148
-msgid "is active again"
-msgstr "è riattivata"
-
-#: ep_function.php:150
-msgid "is already active"
-msgstr "è gia attivata"
-
-#: ep_function.php:152
-msgid "has not been confirmed by email"
-msgstr "non è stata confermata da email"
-
-#: ep_function.php:154 ep_function.php:182
-msgid "Error: unknown status"
-msgstr "Errore : Stato sconosciuto"
-
-#: ep_function.php:176
-msgid "is now suspended"
-msgstr "è addesso sospesa"
-
-#: ep_function.php:178
-msgid "is already suspended"
-msgstr "è gia sospesa"
-
-#: ep_function.php:180
-msgid "can not be suspended because it has not been activated yet"
-msgstr "non puo essere sospesa perchè non è stata ancora attivata"
-
-#: ep_function.php:254
-msgid "List trash email activate"
-msgstr "La lista di email rifiuti è attivata"
-
-#: ep_function.php:257
-msgid "List trash email disable"
-msgstr "La lista di email rifiuti è disattivata"
-
-#: ep_function.php:259
-msgid "Create "
-msgstr "Creare"
-
-#: ep_function.php:261
-msgid "and expires on"
-msgstr "e scade alle"
-
-#: ep_function.php:265
-msgid "Comment :"
-msgstr "Commento :"
-
-#: ep_function.php:268
-msgid "Disable :"
-msgstr "Disattivare :"
-
-#: ep_function.php:271
-msgid "Activate :"
-msgstr "Attivare :"
-
-#: ep_function.php:274
-msgid "Delete :"
-msgstr "Cancellare :"
-
-#: ep_function.php:280
-msgid "List trash email"
-msgstr "Listare email rifiuti"
diff --git a/src/lang/messages.pot b/src/lang/messages.pot
deleted file mode 100644
index c0214a2..0000000
--- a/src/lang/messages.pot
+++ /dev/null
@@ -1,383 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
-# This file is distributed under the same license as the PACKAGE package.
-# FIRST AUTHOR , YEAR.
-#
-#, fuzzy
-msgid ""
-msgstr ""
-"Project-Id-Version: PACKAGE VERSION\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2018-11-16 12:45+0100\n"
-"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
-"Last-Translator: FULL NAME \n"
-"Language-Team: LANGUAGE \n"
-"Language: \n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=CHARSET\n"
-"Content-Transfer-Encoding: 8bit\n"
-
-#: emailPoubelleAdmin.php:27
-msgid "Error: Incorrect password"
-msgstr ""
-
-#: emailPoubelleAdmin.php:75
-msgid "Statistics"
-msgstr ""
-
-#: emailPoubelleAdmin.php:77
-msgid "Total alias"
-msgstr ""
-
-#: emailPoubelleAdmin.php:78
-msgid "Active alias"
-msgstr ""
-
-#: emailPoubelleAdmin.php:79
-msgid "Alias suspended"
-msgstr ""
-
-#: emailPoubelleAdmin.php:80
-msgid "Alias not verified"
-msgstr ""
-
-#: emailPoubelleAdmin.php:86
-msgid "User email"
-msgstr ""
-
-#: emailPoubelle.php:22
-msgid "Debug enabled"
-msgstr ""
-
-#: emailPoubelle.php:28
-msgid ""
-"Error : the configuration file conf.php might not be included because the "
-"constants are not declared"
-msgstr ""
-
-#: emailPoubelle.php:31
-msgid ""
-"Error : the working directory cannot be written. Please contact the admin"
-msgstr ""
-
-#: emailPoubelle.php:34
-msgid "Error : the alias file cannot be written. Please contact the admin"
-msgstr ""
-
-#: emailPoubelle.php:37
-msgid "Error : the blacklist file cannot be read. Please contact the admin"
-msgstr ""
-
-#: emailPoubelle.php:40
-msgid ""
-"Error : the forbidden aliases file cannot be read. Please contact the admin"
-msgstr ""
-
-#: emailPoubelle.php:43 emailPoubelle.php:47
-msgid "Service under maintenance"
-msgstr ""
-
-#: emailPoubelle.php:85
-msgid "Error initializing tables. Please contact the admin"
-msgstr ""
-
-#: emailPoubelle.php:102 emailPoubelle.php:173
-msgid "Your trash email address"
-msgstr ""
-
-#: emailPoubelle.php:102 emailPoubelle.php:173
-msgid "is now enabled"
-msgstr ""
-
-#: emailPoubelle.php:104
-msgid "Error : unknown ID or already validated"
-msgstr ""
-
-#: emailPoubelle.php:121
-msgid "The scheduled task is running"
-msgstr ""
-
-#: emailPoubelle.php:124
-msgid "You didn't allow the scheduled job"
-msgstr ""
-
-#: emailPoubelle.php:134 emailPoubelle.php:136 emailPoubelle.php:151
-#: emailPoubelle.php:153
-msgid "Error : email address incorrect"
-msgstr ""
-
-#: emailPoubelle.php:138 emailPoubelle.php:200
-msgid "An email has been sent to you"
-msgstr ""
-
-#: emailPoubelle.php:140
-msgid "Error : no known active trash email"
-msgstr ""
-
-#: emailPoubelle.php:155
-msgid "Error : trash email address syntax incorrect"
-msgstr ""
-
-#: emailPoubelle.php:157
-msgid "Error : this domain cannot be used"
-msgstr ""
-
-#: emailPoubelle.php:159
-msgid "Error : Your email can not contain a trash domain"
-msgstr ""
-
-#: emailPoubelle.php:161
-msgid "Error : trash email address forbidden"
-msgstr ""
-
-#: emailPoubelle.php:163
-msgid "Error : you have been blacklisted"
-msgstr ""
-
-#: emailPoubelle.php:167
-msgid "Error : this trash email already exists"
-msgstr ""
-
-#: emailPoubelle.php:169
-msgid ""
-"Error: You have reached your limit quota on this app. You can install this script on a "
-"personal server if you want more quota"
-msgstr ""
-
-#: emailPoubelle.php:176
-msgid "Confirmation of the creation of your trash email :"
-msgstr ""
-
-#: emailPoubelle.php:178
-msgid "Click on the link below to validate :"
-msgstr ""
-
-#: emailPoubelle.php:181
-msgid "To delete this trash email, click on the link below :"
-msgstr ""
-
-#: emailPoubelle.php:184
-msgid ""
-"After confirmation, you will be able to temporary suspend you trash email "
-"using the link below :"
-msgstr ""
-
-#: emailPoubelle.php:186
-msgid "Alias confirmation"
-msgstr ""
-
-#: emailPoubelle.php:187
-msgid "Your email address"
-msgstr ""
-
-#: emailPoubelle.php:187
-msgid "is unknown, a confirmation has been sent to you."
-msgstr ""
-
-#: emailPoubelle.php:193
-msgid "Confirmation of the removal of your trash email : "
-msgstr ""
-
-#: emailPoubelle.php:195
-msgid "Click on the link below to validate the deletion :"
-msgstr ""
-
-#: emailPoubelle.php:197
-msgid ""
-"If you would like to temporary suspend this trash email, you can follow the "
-"link bellow :"
-msgstr ""
-
-#: emailPoubelle.php:199
-msgid "Alias deletion"
-msgstr ""
-
-#: emailPoubelle.php:202
-msgid "Error : unknown trash email"
-msgstr ""
-
-#: emailPoubelle.php:230
-msgid "Add"
-msgstr ""
-
-#: emailPoubelle.php:231
-msgid "List"
-msgstr ""
-
-#: emailPoubelle.php:232 emailPoubelle.php:274
-msgid "Delete"
-msgstr ""
-
-#: emailPoubelle.php:233 emailPoubelle.php:275
-msgid "Suspend"
-msgstr ""
-
-#: emailPoubelle.php:234 emailPoubelle.php:276
-msgid "Resume"
-msgstr ""
-
-#: emailPoubelle.php:238
-msgid "Your real email address"
-msgstr ""
-
-#: emailPoubelle.php:241
-msgid "Remember"
-msgstr ""
-
-#: emailPoubelle.php:244
-msgid "Name of your trash email address"
-msgstr ""
-
-#: emailPoubelle.php:245
-msgid "Ex : john_shop"
-msgstr ""
-
-#: emailPoubelle.php:258
-msgid "Unlimited time"
-msgstr ""
-
-#: emailPoubelle.php:259
-msgid "2 hours"
-msgstr ""
-
-#: emailPoubelle.php:260
-msgid "6 hours"
-msgstr ""
-
-#: emailPoubelle.php:261
-msgid "1 day"
-msgstr ""
-
-#: emailPoubelle.php:262
-msgid "7 days"
-msgstr ""
-
-#: emailPoubelle.php:263
-msgid "15 days"
-msgstr ""
-
-#: emailPoubelle.php:264
-msgid "30 days"
-msgstr ""
-
-#: emailPoubelle.php:265
-msgid "90 days"
-msgstr ""
-
-#: emailPoubelle.php:269
-msgid "Comment for this trash email (for your to remember)"
-msgstr ""
-
-#: emailPoubelle.php:270
-msgid "Ex : Inscription sur zici.fr"
-msgstr ""
-
-#: emailPoubelle.php:273
-msgid "Activate"
-msgstr ""
-
-#: emailPoubelle.php:362
-msgid "Version"
-msgstr ""
-
-#: emailPoubelle.php:362
-msgid "Created by David Mercereau under licence GNU GPL v3"
-msgstr ""
-
-#: emailPoubelle.php:363
-msgid "Download and use this script on the project website"
-msgstr ""
-
-#: ep_function.php:93
-msgid "has been deleted with all these aliases"
-msgstr ""
-
-#: ep_function.php:99
-msgid "Erreur"
-msgstr ""
-
-#: ep_function.php:99
-msgid "has not been deleted"
-msgstr ""
-
-#: ep_function.php:120
-msgid "has been deleted"
-msgstr ""
-
-#: ep_function.php:126
-msgid "Error: email trash unknown"
-msgstr ""
-
-#: ep_function.php:145 ep_function.php:173
-msgid "Error: Can not find this trash email"
-msgstr ""
-
-#: ep_function.php:148 ep_function.php:150 ep_function.php:152
-#: ep_function.php:176 ep_function.php:178 ep_function.php:180
-msgid "The reception on"
-msgstr ""
-
-#: ep_function.php:148
-msgid "is active again"
-msgstr ""
-
-#: ep_function.php:150
-msgid "is already active"
-msgstr ""
-
-#: ep_function.php:152
-msgid "has not been confirmed by email"
-msgstr ""
-
-#: ep_function.php:154 ep_function.php:182
-msgid "Error: unknown status"
-msgstr ""
-
-#: ep_function.php:176
-msgid "is now suspended"
-msgstr ""
-
-#: ep_function.php:178
-msgid "is already suspended"
-msgstr ""
-
-#: ep_function.php:180
-msgid "can not be suspended because it has not been activated yet"
-msgstr ""
-
-#: ep_function.php:254
-msgid "List trash email activate"
-msgstr ""
-
-#: ep_function.php:257
-msgid "List trash email disable"
-msgstr ""
-
-#: ep_function.php:259
-msgid "Create "
-msgstr ""
-
-#: ep_function.php:261
-msgid "and expires on"
-msgstr ""
-
-#: ep_function.php:265
-msgid "Comment :"
-msgstr ""
-
-#: ep_function.php:268
-msgid "Disable :"
-msgstr ""
-
-#: ep_function.php:271
-msgid "Activate :"
-msgstr ""
-
-#: ep_function.php:274
-msgid "Delete :"
-msgstr ""
-
-#: ep_function.php:280
-msgid "List trash email"
-msgstr ""
diff --git a/src/lang/note.txt b/src/lang/note.txt
deleted file mode 100644
index fd0d6ca..0000000
--- a/src/lang/note.txt
+++ /dev/null
@@ -1,11 +0,0 @@
-cp lib/ep_function.php .
-xgettext *.php -o lang/messages.pot --from-code="UTF-8"
-msgmerge --no-wrap -N lang/fr/LC_MESSAGES/messages.po lang/messages.pot > lang/fr/LC_MESSAGES/messages-new.po
-
-# Edit lang/fr/LC_MESSAGES/messages-new.po
-
-mv lang/fr/LC_MESSAGES/messages-new.po lang/fr/LC_MESSAGES/messages.po
-mv lang/fr/LC_MESSAGES/messages-new.mo lang/fr/LC_MESSAGES/messages.mo
-rm ep_function.php
-msgfmt -o lang/fr/LC_MESSAGES/messages.mo -v lang/fr/LC_MESSAGES/messages.po
-
diff --git a/src/lib/blk.png b/src/lib/blk.png
deleted file mode 100644
index d0eac5fb5e16a4260517e66587d1cedbb0c4bd38..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001
literal 944
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
diff --git a/src/lib/en.png b/src/lib/en.png
deleted file mode 100644
index 6d307158fb997eb283110ba7a34afe68b686d348..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001
literal 1078
zcmV-61j+k}P)U0|++()dq?NPDiKn-sw3+|bFo2?M=uAQIf-(LS@|%;!x{&v;FkFwstEsK=iU60$eEsvtQX(9!LrK7ukhx-6n5>Mr07U3aERBnc
zyO}Ar$U%mhtM>Wzben4IVk*V2UD(S!f2z&_b~ikMxh`jw#iT0T>hf)ot=sI*#Y8}G
ztyWV|PhF5f)G01Fyw}65sr9w4(BFWK#pl1&=Dx_*w~LL!xlXZiHLQ#&mcU5l$?
z_QJhDuHodN5UzE9^2aY0qS3t7E!EW28W$F=KQaKh>J49+#JshWNLSQuF{jh&c5O~V
zk{=_VQ1GUpe2QN_kelNn6NI9b0g*CEi9OtOXtTMxI;yqpcy4c<#{g7Njy5mi0VnRv
zIV>g{ntv-vZ)^MJiBBZfiXAynfym*zqD5zNNM>QOlRIW{?{p;S(Kdm?Z~%$N
zsH{@mJmC^ab0{!ywoSK>p
zgueRU<%^_7-MK8*(7+)e7eX2wPp_!s-x?SpBmjBASg}h0p5FjIfs(!ku-WimupdRP
zRl98k0F~K)yx{iKF>$*=bd(A|wDHyMVmlKf