Jogger.pl


Oryginalny komentarz

Kusiło mnie żeby popróbować na podbij.pl, czy jestem sprytniejszy od innych lemingów, ale stwierdziłem, że najpierw poprzyglądam się jak to działa. „Przyglądanie się” zrealizowałem za pomocą prymitywnego skryptu w bash-u (wget w pętli, proste parsowanie pod kątem pozostałego czasu i osiągniętej ceny). No i wyszło mi, że niby można by napisać jakiś skrypcik pod np. greasemonkey, który cierpliwie poczeka i klepnie „podbij” w drugiej połowie ostatniej sekundy – czasem trafi, częściej nie trafi, ale nie zmarnowałby tylu podbić co matołki klepiące „podbij” 15s przed końcem. Tyle że problem ze zmartwychwstawaniem aukcji wciąż istnieje – np. 341 – 100 podbić „skończyła się” wczoraj ok. 21:02 na jakichś 58zł a trwa do teraz i na razie jest 201zł. „Aukcja” jest „darmowa”, więc dla klikaczy cena nie gra roli, ale podbij.pl zarobił >1400zł + VAT.

Może ten system po prostu sypie się. Ale może być też tak, że jest oszukiwany nawet bardziej niż to widać.

Jakby się ktoś chciał pobawić to wklejam ostatnią wersję wspomnianego skryptu (na licencji GPL v.3). Pewnie wklejenie źle go połamie, ale ci, co kumają basha to sobie poradzą.

#!/bin/bash

#Czas krytyczny
ct=6
hct=$(( $ct / 2 )) #Licznik zakończeń
endmax=20
endcnt=0

url=http://podbij.pl/auction/ #au=270-kino-domowe-lg-ht552ph

#./podbij.sh 340-tv-philips-32pfl-5322

if [ $# -lt 1 ] ; then echo „Usage: $0 aukcja” exit 1
else au=$1
fi

while [ $endcnt -le $endmax ] ; do [ -e $au ] && rm $au wget -q ${url}${au} if [ -e $au ] ; then t=$( grep „class=\„time\”„ $au | sed ‘s-.class=„time”>\(.\)</div>\1;s-:-: -g’ | awk ‘{if ($1 ! „:”) print 3600*$1+60*$2+$3; }’ ) end=$( grep „class=\„time msg\”„ $au | sed ‘s-.class=„time msg”>\(.\)</div>\1‘ ) p=$( grep „class=\„price\”„ $au | sed ‘s-.class=„price”>\(.\)</span></td>\1‘ | awk ‘{if ($0 ~ „,”) print $0}’) if [ -z $end ] ; then if [ $t -ge $ct ] ; then # dużo czasu echo `date`” Czas: „$t” Cena: „$p sleep $(( $t – $ct + 1 )) else # mało czasu tr=$(( $( date +%s ) + $t )) [ $t -le $hct ] && c=31 || c=33 echo -e $au” \e[1;${c}mKoniec: „$( date -d ’1970-01-01 ‘$tr’ sec’ +”%Y-%m-%d %T %z” )”\e[0m Czas: „$t” Cena: „$p usleep 400000 fi else # koniec, ale może odżyje endcnt=$(( $endcnt + 1 )) echo -e $au” \e[1;32m${end}\e[0m (${endcnt}) Data: „`date`” Cena: „$p sleep $ct fi else # blad echo -e `date`” \e[1;36mCannot find $au\e[0m” usleep 600000 fi
done

Zmodyfikowany komentarz

Kusiło mnie żeby popróbować na podbij.pl, czy jestem sprytniejszy od innych lemingów, ale stwierdziłem, że najpierw poprzyglądam się jak to działa. „Przyglądanie się” zrealizowałem za pomocą prymitywnego skryptu w bash-u (wget w pętli, proste parsowanie pod kątem pozostałego czasu i osiągniętej ceny). No i wyszło mi, że niby można by napisać jakiś skrypcik pod np. greasemonkey, który cierpliwie poczeka i klepnie „podbij” w drugiej połowie ostatniej sekundy – czasem trafi, częściej nie trafi, ale nie zmarnowałby tylu podbić co matołki klepiące „podbij” 15s przed końcem. Tyle że problem ze zmartwychwstawaniem aukcji wciąż istnieje – np. 341 – 100 podbić „skończyła się” wczoraj ok. 21:02 na jakichś 58zł a trwa do teraz i na razie jest 201zł. „Aukcja” jest „darmowa”, więc dla klikaczy cena nie gra roli, ale podbij.pl zarobił >1400zł + VAT.

Może ten system po prostu sypie się. Ale może być też tak, że jest oszukiwany nawet bardziej niż to widać.

Jakby się ktoś chciał pobawić to wklejam ostatnią wersję wspomnianego skryptu (na licencji GPL v.3). Pewnie wklejenie źle go połamie, ale ci, co kumają basha to sobie poradzą.

#!/bin/bash

#Czas krytyczny
ct=6
hct=$(( $ct / 2 )) #Licznik zakończeń
endmax=20
endcnt=0

url=http://podbij.pl/auction/ #au=270-kino-domowe-lg-ht552ph

#./podbij.sh 340-tv-philips-32pfl-5322

if [ $# -lt 1 ] ; then echo „Usage: $0 aukcja” exit 1
else au=$1
fi

while [ $endcnt -le $endmax ] ; do [ -e $au ] && rm $au wget -q ${url}${au} if [ -e $au ] ; then t=$( grep „class=\„time\”„ $au | sed ‘s-.*class=„time”>\(.*\)</div>-\1-;s-:-: -g’ | awk ‘{if ($1 ! „:”) print 3600*$1+60*$2+$3; }’ ) end=$( grep „class=\„time msg\”„ $au | sed ‘s-.*class=„time msg”>\(.*\)</div>-\1-‘ ) p=$( grep „class=\„price\”„ $au | sed ‘s-.*class=„price”>\(.*\)</span></td>-\1-‘ | awk ‘{if ($0 ~ „,”) print $0}’) if [ -z $end ] ; then if [ $t -ge $ct ] ; then # dużo czasu echo `date`” Czas: „$t” Cena: „$p sleep $(( $t – $ct + 1 )) else # mało czasu tr=$(( $( date +%s ) + $t )) [ $t -le $hct ] && c=31 || c=33 echo -e $au” \e[1;${c}mKoniec: „$( date -d ’1970-01-01 ‘$tr’ sec’ +”%Y-%m-%d %T %z” )”\e[0m Czas: „$t” Cena: „$p usleep 400000 fi else # koniec, ale może odżyje endcnt=$(( $endcnt + 1 )) echo -e $au” \e[1;32m${end}\e[0m (${endcnt}) Data: „`date`” Cena: „$p sleep $ct fi else # blad echo -e `date`” \e[1;36mCannot find $au\e[0m” usleep 600000 fi
done