2024-01-29 14:02:59 +00:00
#fiexport - An easy way to export financial reports
#Copyright (C) 2024 19atlas
#This program is free software: you can redistribute it and/or modify
#it under the terms of the GNU General Public License as published by
#the Free Software Foundation, either version 3 of the License, or
#(at your option) any later version.
#This program is distributed in the hope that it will be useful,
#but WITHOUT ANY WARRANTY; without even the implied warranty of
#MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
#GNU General Public License for more details.
#You should have received a copy of the GNU General Public License
#along with this program. If not, see <https://www.gnu.org/licenses/>.
from datetime import date
import os
# get date
today = date . today ( )
dt_string = today . strftime ( " % Y- % m " )
print ( " Some questions for that file \n pls month should be like 01 or 12 \n " )
print ( " What is date for file? (Y-m format) [ " , dt_string , " ] " )
dt_string = str ( input ( ) )
if ( dt_string == " " ) :
dt_string = today . strftime ( " % Y- % m " )
month_int = dt_string . split ( " - " , 1 ) [ 1 ] . replace ( " " , " " )
if ( month_int == " " ) :
print ( " error month " )
exit ( )
year_int = dt_string . split ( " - " , 1 ) [ 0 ] . replace ( " " , " " )
if ( year_int == " " ) :
print ( " error year " )
exit ( )
print ( " set for file => date is " , dt_string , " year is " , year_int , " month is " , month_int )
2024-01-29 16:01:35 +00:00
# for writing get number of month change to text
# for example 1 -> January
2024-01-29 14:02:59 +00:00
month_name_eng = {
" 01 " : " January " ,
" 02 " : " February " ,
" 03 " : " March " ,
" 04 " : " April " ,
" 05 " : " May " ,
" 06 " : " June " ,
" 07 " : " July " ,
" 08 " : " August " ,
" 09 " : " September " ,
" 10 " : " October " ,
" 11 " : " November " ,
" 12 " : " December "
}
short_month_name = {
" 01 " : " jan " ,
" 02 " : " feb " ,
" 03 " : " mar " ,
" 04 " : " apr " ,
" 05 " : " may " ,
" 06 " : " jun " ,
" 07 " : " jul " ,
" 08 " : " aug " ,
" 09 " : " sep " ,
" 10 " : " oct " ,
" 11 " : " nov " ,
" 12 " : " dec "
}
month_name_tur = {
" 01 " : " Ocak " ,
" 02 " : " Şubat " ,
" 03 " : " Mart " ,
" 04 " : " Nisan " ,
" 05 " : " Mayı s " ,
" 06 " : " Haziran " ,
" 07 " : " Temmuz " ,
" 08 " : " Ağustos " ,
" 09 " : " Eylül " ,
" 10 " : " Ekim " ,
" 11 " : " Kası m " ,
" 12 " : " Aralı k "
}
month_name_por_BR = {
" 01 " : " Janeiro " ,
" 02 " : " Fevereiro " ,
" 03 " : " Março " ,
" 04 " : " Abril " ,
" 05 " : " Maio " ,
" 06 " : " Junho " ,
" 07 " : " Julho " ,
" 08 " : " Agosto " ,
" 09 " : " Setembro " ,
" 10 " : " Outubro " ,
" 11 " : " Novembro " ,
" 12 " : " Dezembro "
}
# writing dates
2024-01-29 16:01:35 +00:00
writing_date_eng = month_name_eng [ month_int ] + " " + year_int
writing_date_tur = month_name_tur [ month_int ] + " " + year_int
writing_date_por_BR = month_name_por_BR [ month_int ] + " " + year_int
2024-01-29 14:02:59 +00:00
# for html id
html_id_n = short_month_name [ month_int ] + year_int [ - 2 : : ] + " finreport "
# make dir that eng/ tur/ por_BR/
langfolder_names = [ " tur " , " eng " , " por_BR " ]
for folder in langfolder_names :
os . makedirs ( folder , exist_ok = True )
2024-01-29 16:01:35 +00:00
print ( " Dirs was created \n now please answer financial questions (maybe boring) (dont use currency only number) " )
LibP_total_str = str ( input ( " LiberaPay total [0] = " ) )
XMR_total_str = str ( input ( " Monero (XMR) total [0] = " ) )
servers_usage_str = str ( input ( " all servers usage (don ' t forget that is text) = " ) )
totally_used_s = str ( input ( " all money used [0] = " ) )
what_we_have = str ( input ( " what we have? [0] = " ) )
XMR_wehave = str ( input ( " XMR conversion rate? [0] = " ) )
XMR_conv_date = str ( input ( " XMR cheking date? (Dth MMM YYYY) = " ) )
extramoneyis_dividedto_team = str ( input ( " Was extra money shared among team? [The extra money has not been yet divided among the team] = " ) )
# if is that NULL
if ( LibP_total_str == " " ) :
LibP_total_str = " 0 "
if ( XMR_total_str == " " ) :
XMR_total_str = " 0 "
if ( servers_usage_str == " " ) :
servers_usage_str = " dont used any server "
if ( totally_used_s == " " ) :
totally_used_s = " 0 "
if ( what_we_have == " " ) :
what_we_have = " 0 "
if ( XMR_wehave == " " ) :
XMR_wehave = " 0 "
if ( extramoneyis_dividedto_team == " " ) :
extramoneyis_dividedto_team = " The extra money has not been yet divided among the team. "
remaining = str ( float ( what_we_have ) + float ( XMR_wehave ) ) #maybe that is make performance issue
if ( remaining == " " ) :
print ( " remaining is NULL please check again... " )
2024-01-29 14:02:59 +00:00
# output html's
# English
eng_f = open ( os . path . join ( " eng " , dt_string + " .html " ) , " w " )
eng_f . write ( " <!DOCTYPE html> \n " )
eng_f . write ( ' <html lang= " en " > \n ' )
eng_f . write ( " <head> \n " )
eng_f . write ( ' <meta name= " viewport " content= " width=device-width " > \n ' )
eng_f . write ( ' <meta charset= " UTF-8 " > \n ' )
eng_f . write ( ' <meta name= " description " content= " ' + writing_date_eng + ' Financial Report of ~vern " > \n ' )
eng_f . write ( ' <meta name= " keywords " content= " ~vern, vern, free software, privacy, tilde, tildeverse, costs, transparency " > \n ' )
eng_f . write ( ' <link rel= " preload " href= " //gcdn.vern.cc/vernsite/style.css " > \n ' )
eng_f . write ( ' <link rel= " stylesheet " href= " //gcdn.vern.cc/vernsite/style.css " > \n ' )
2024-01-29 16:01:35 +00:00
eng_f . write ( " <title> " + writing_date_eng + " | ~vern</title> \n " )
2024-01-29 14:02:59 +00:00
eng_f . write ( " </head> \n " )
eng_f . write ( " <body> \n " )
eng_f . write ( ' <!--#include file= " /eng/nav.php " --> \n ' )
2024-01-29 16:01:35 +00:00
eng_f . write ( ' <div class=h><h1 id= ' + html_id_n + ' > ' + writing_date_eng + ' Financial Report of ~vern</h1> <a aria-hidden=true href=# ' + html_id_n + ' ># ' + html_id_n + ' </a></div> \n ' )
eng_f . write ( ' <div class=h><b id=liberapay>LiberaPay (Fiat) Donations:</b> <a aria-hidden=true href=#liberapay>#liberapay</a></div> \n ' )
eng_f . write ( " <p>We received a total of " + LibP_total_str + " USD on LiberaPay this month.</p> \n " )
eng_f . write ( ' <div class=h><b id=xmr>Monero (XMR) Donations:</b> <a aria-hidden=true href=#xmr>#xmr</a></div> \n ' )
eng_f . write ( " <p>We received a total of " + XMR_total_str + " XMR this month. It has not been converted to fiat. This money is kept for times when we have a lack of funds to use or to cash out when XMR peaks.</p> \n " )
eng_f . write ( ' <div class=h><b id=usage>Usage:</b> <a aria-hidden=true href=#usage>#usage</a></div> \n ' )
eng_f . write ( " <p> " + servers_usage_str + " </p> \n " )
eng_f . write ( ' <p>Totally ' + totally_used_s + ' USD was used up this month. We have ' + what_we_have + ' USD + around ' + XMR_wehave + ' USD (XMR conversion rate as of ' + XMR_conv_date + ' ) = ' + remaining + ' USD remaining.</p> \n ' )
eng_f . write ( ' <p> ' + extramoneyis_dividedto_team + ' </p> \n ' )
2024-01-29 14:02:59 +00:00
eng_f . write ( ' <!--#include file= " /eng/footer.cgi " --> \n ' )
eng_f . write ( ' </body> \n ' )
eng_f . write ( ' </html> ' )
eng_f . close ( )
2024-01-29 16:01:35 +00:00
print ( " \ e[1;31m!!!!Please send the remaining files(por_BR and tur) to our translators!!!! \ e[0m " )
2024-01-29 14:02:59 +00:00
# Turkish
tur_f = open ( os . path . join ( " tur " , dt_string + " .html " ) , " w " )
tur_f . write ( " <!DOCTYPE html> \n " )
tur_f . write ( ' <html lang= " tr " > \n ' )
tur_f . write ( " <head> \n " )
tur_f . write ( ' <meta name= " viewport " content= " width=device-width " > \n ' )
tur_f . write ( ' <meta charset= " UTF-8 " > \n ' )
tur_f . write ( ' <meta name= " description " content= " ~vern ' + writing_date_tur + ' Finansal Raporu " > \n ' )
tur_f . write ( ' <meta name= " keywords " content= " ~vern, vern, free software, privacy, tilde, tildeverse, costs, transparency " > \n ' )
tur_f . write ( ' <link rel= " preload " href= " //gcdn.vern.cc/vernsite/style.css " > \n ' )
tur_f . write ( ' <link rel= " stylesheet " href= " //gcdn.vern.cc/vernsite/style.css " > \n ' )
tur_f . write ( " <title> " + writing_date_tur + " Finansal Raporu | ~vern</title> \n " )
tur_f . write ( " </head> \n " )
tur_f . write ( " <body> \n " )
tur_f . write ( ' <!--#include file= " /tur/nav.php " --> \n ' )
tur_f . write ( ' <div class=h><h1 id= ' + html_id_n + ' >~vern ' + writing_date_tur + ' Finansal Raporu</h1> <a aria-hidden=true href=# ' + html_id_n + ' ># ' + html_id_n + ' </a></div> \n ' )
tur_f . write ( ' <div class=h><b id=liberapay>LiberaPay (Fiat) Bağı şları :</b> <a aria-hidden=true href=#liberapay>#liberapay</a></div> \n ' )
2024-01-29 16:01:35 +00:00
tur_f . write ( " <p>Bu ayda LiberaPay ' den toplam olarak " + LibP_total_str + " USD aldı k.</p> " )
2024-01-29 14:02:59 +00:00
tur_f . write ( ' <div class=h><b id=xmr>Monero (XMR) Bağı şları :</b> <a aria-hidden=true href=#xmr>#xmr</a></div> \n ' )
2024-01-29 16:01:35 +00:00
tur_f . write ( " <p>Bu ay toplam olarak " + XMR_total_str + " XMR aldı k. Fiat ' a dönüştürülmedi. Bu para, XMR zirveye ulaştı ğı nda kullanacak veya nakde çevirecek paramı zı n olmadı ğı zamanlar için tutuluyor.</p> \n " )
2024-01-29 14:02:59 +00:00
tur_f . write ( ' <div class=h><b id=usage>Kullanı m:</b> <a aria-hidden=true href=#usage>#usage</a></div> \n ' )
2024-01-29 16:01:35 +00:00
tur_f . write ( " <p> " + servers_usage_str + " </p> \n " )
tur_f . write ( ' <p>Toplam ' + totally_used_s + ' USD bu ay kullanı ldı . bizde olan ' + what_we_have + ' USD + yaklaşı k ' + XMR_wehave + ' USD ( ' + XMR_conv_date + ' itibarı yla XMR dönüşüm oranı ) = ' + remaining + ' USD kalan.</p> \n ' )
tur_f . write ( ' <p> ' + extramoneyis_dividedto_team + ' </p> \n ' )
2024-01-29 14:02:59 +00:00
tur_f . write ( ' <!--#include file= " /tur/footer.cgi " --> \n ' )
tur_f . write ( ' </body> \n ' )
tur_f . write ( ' </html> ' )
tur_f . close ( )
# Portaguse
por_BR_f = open ( os . path . join ( " por_BR " , dt_string + " .html " ) , " w " )
por_BR_f . write ( " <!DOCTYPE html> \n " )
por_BR_f . write ( ' <html lang= " pt " > \n ' )
por_BR_f . write ( " <head> \n " )
por_BR_f . write ( ' <meta name= " viewport " content= " width=device-width " > \n ' )
por_BR_f . write ( ' <meta charset= " UTF-8 " > \n ' )
por_BR_f . write ( ' <meta name= " description " content= " ' + writing_date_por_BR + ' Relatório financeiro do ~vern " > \n ' )
por_BR_f . write ( ' <meta name= " keywords " content= " ~vern, vern, free software, privacy, tilde, tildeverse, costs, transparency " > \n ' )
por_BR_f . write ( ' <link rel= " preload " href= " //gcdn.vern.cc/vernsite/style.css " > \n ' )
por_BR_f . write ( ' <link rel= " stylesheet " href= " //gcdn.vern.cc/vernsite/style.css " > \n ' )
por_BR_f . write ( " <title>Reporte Financeiro de " + writing_date_por_BR + " | ~vern</title> \n " )
por_BR_f . write ( " </head> \n " )
por_BR_f . write ( " <body> \n " )
por_BR_f . write ( ' <!--#include file= " /por-BR/nav.php " --> ' )
2024-01-29 16:01:35 +00:00
por_BR_f . write ( ' <div class=h><h1 id= ' + html_id_n + ' >Reporte Financeiro de ' + writing_date_por_BR + ' do ~vern</h1> <a aria-hidden=true href=# ' + html_id_n + ' ># ' + html_id_n + ' </a></div> \n ' )
por_BR_f . write ( ' <div class=h><b id=liberapay>LiberaPay (dinheiro):</b> <a aria-hidden=true href=#liberapay>#liberapay</a></div> \n ' )
por_BR_f . write ( " <p>Recebemos um total de " + LibP_total_str + " USD no LiberaPay neste mês.</p> \n " )
por_BR_f . write ( ' <div class=h><b id=xmr>Monero (XMR):</b> <a aria-hidden=true href=#xmr>#xmr</a></div> \n ' )
por_BR_f . write ( " <p>Recebemos um total de " + XMR_total_str + " XMR este mês. Não foi convertido para dinheiro. Este dinheiro é guardado para quando nós temos uma emergência e para conversão quando XMR subir.</p> \n " )
2024-01-29 14:02:59 +00:00
por_BR_f . write ( ' <div class=h><b id=usage>Utilização:</b> <a aria-hidden=true href=#usage>#usage</a></div> \n ' )
2024-01-29 16:01:35 +00:00
por_BR_f . write ( " <p> " + servers_usage_str + " </p> \n " )
por_BR_f . write ( ' <p>No total, ' + totally_used_s + ' USD foi utilizado neste mês. Nós temos ' + what_we_have + ' USD + por volta de ' + XMR_wehave + ' USD (taxa de conversão de XMR na data de ' + XMR_conv_date + ' ) = ' + remaining + ' USD restantes.</p> \n ' )
por_BR_f . write ( ' <p> ' + extramoneyis_dividedto_team + ' </p> \n ' )
2024-01-29 14:02:59 +00:00
por_BR_f . write ( ' <!--#include file= " /por-BR/footer.cgi " --> \n ' )
por_BR_f . write ( ' </body> \n ' )
por_BR_f . write ( ' </html> ' )
2024-01-29 16:01:35 +00:00
2024-01-29 14:02:59 +00:00
por_BR_f . close ( )