Re: [lms] Import płatności BZWBK
Podzielił, u mnie działa to tak: - serwer poczty mam u siebie - poczta jest maildir - skrypt sprawdza, czy coś pojawiło się w inbox - jak jest, zabiera się za pierwszego @, zabiera z niego i umieszcza w jednej linii info o przelewach - zmiana zawartości na txt - poskładanie tego w zrozumiałą zawartość dla mysql - u mnie przenosi @ do innej skrzynki - pewnie nie jest wykonane za elegancko, ale działa mi od 4-5? lat, więc nie poprawiam, jest jak jest ;-) numiałem się na potrzebę chwili, wiedząc czego chcę i mając o tym blade pojęcie, przydało by się dopisać weryfikację kto @ nadesłał ale mi się nie chciało. Gdyby to ktoś poprawił - chętnie przytulę. *pliki: parser ; awk-sql ; base64 ; sed*
*parser:* #!/bin/bash set -x cd /parserBZWBK HOMEBZWBK=/parserBZWBK INBOXBZWBK=/mail/virtual/bartpl.com/bzwbk/cur INBOXBZWBK2=/mail/virtual/bartpl.com/bzwbk/new TRASHBZWBK=/mail/virtual/bartpl.com/bzwbk/.atam/cur
while ls $INBOXBZWBK/* do POCZTA=`ls /mail/virtual/bartpl.com/bzwbk/cur | sed -n '1p'` echo $POCZTA >> $HOMEBZWBK/history.log $HOMEBZWBK/sed $INBOXBZWBK/$POCZTA > $HOMEBZWBK/temp cat $HOMEBZWBK/temp | awk -F " " '{ORS=""; print $1}' > $HOMEBZWBK/temp2 base64 -d /parserBZWBK/temp2 | sed 's/.$//' | sed '/^[A-Z]/d' > $HOMEBZWBK/temp3 sleep 1 cat $HOMEBZWBK/temp3 | awk -F "|" -f $HOMEBZWBK/awk-sql sleep 1 mysql -ulms -ppass lms < $HOMEBZWBK/bzwbk.sql date >> $HOMEBZWBK/work.log mv $INBOXBZWBK/$POCZTA $TRASHBZWBK/ echo "jeden cur zrobiony" done
while ls $INBOXBZWBK2/* do POCZTA=`ls /mail/virtual/bartpl.com/bzwbk/new | sed -n '1p'` echo $POCZTA >> $HOMEBZWBK/history.log $HOMEBZWBK/sed $INBOXBZWBK2/$POCZTA > $HOMEBZWBK/temp cat $HOMEBZWBK/temp | awk -F " " '{ORS=""; print $1}' > $HOMEBZWBK/temp2 base64 -d /parserBZWBK/temp2 | sed 's/.$//' | sed '/^[A-Z]/d' > $HOMEBZWBK/temp3 sleep 1 cat $HOMEBZWBK/temp3 | awk -F "|" -f $HOMEBZWBK/awk-sql sleep 1 mysql -ulms -ppass lms < $HOMEBZWBK/bzwbk.sql date >> $HOMEBZWBK/work.log mv $INBOXBZWBK2/$POCZTA $TRASHBZWBK/ echo "jeden new zrobiony" done
*awk-sql:* { id=$1; data=systime(); cash=$3; platnik=$4; platnikid=substr($5,15); opis=$6; hash=$7; closed=$8; sourceid=$9; sourcefileid=$10; { print "insert into cashimport values('"id"', '"data"', '"cash"', 'platnik', 'opis-usuniety-bo-ludzie-czasem-pisza-dziwne-rzeczy', '"platnikid"', '"hash"', '"closed"', NULL, NULL);" > "./bzwbk.sql"; } }
*base64:* #!/bin/bash python -c "print '$1'.decode('base64')" | sed '1,1d' | sed '$d' | sed '$d'
*sed:* #!/bin/bash sed -n -e '/Content-Disposition/,/NextPart/p' $1 | sed '1,/^$/d' | sed '/^$/q'
W dniu 2013-12-18 08:46, Skynet Multimedia pisze:
uczestnicy (1)
-
Marcin Kazancow