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:
Hejka
a podzieliłbyś się tym skryptem ? :)