Web Developer On1x.com Игры как увлечение Видео–игры как хобби и увлечение. Новости игровой индустрии. Блог про видео–игры.
видео-трансляции по играмУтиные истории возвращаютсяХарактеристики персонажа в игре Dark Souls

Статистика ежедневных поступлений ссылок в Sape

У меня есть один проект который предоставляет ссылки через sape на свои страницы. Каждый раз заходить и смотреть за динамикой роста месячного заработка довольно проблематично. Именно поэтому я написал модуль к 8 cms, который собирает нужную информацию, и выводит ее в панели управления сайтом.

Вот как это выглядит (картинка справа).
Скрипт входит по https через CURL в сапу, и достает в простейшем формате все ссылки. Обходит их, и ссылки с статусом ОК, сортирует по году, месяцу и дню. Далее скрипт обходит эту структуру и строит несколько слоев с ссылками для плавного slideUp, slideDown (или любого другого toggle) при помощи jQuery.
В помощи сапы написано, что месячная сумма делится на 30 дней, и сапа забирает 10% себе.
А теперь и сам код:
Код - статистика ссылок по sape
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
if($config['sape']['login']){
    $url = "https://auth.sape.ru/login/";
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL,$url);
    curl_setopt($ch, CURLOPT_FAILONERROR, 1);
    curl_setopt($ch, CURLOPT_COOKIESESSION, TRUE);
    curl_setopt($ch, CURLOPT_COOKIEFILE, "cookiefile");
    curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);
    curl_setopt($ch, CURLOPT_TIMEOUT, 10);
    curl_setopt($ch, CURLOPT_POST, 1);
    curl_setopt($ch, CURLOPT_POSTFIELDS, "act=login&username=".$config['sape']['login']."&password=".$config['sape']['pass']); // add POST fields
    curl_exec($ch);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);
    curl_setopt($ch, CURLOPT_URL,'https://www.sape.ru/export/linkswm/?fields%5Blevel%5D=level&fields%5Bdate_placed%5D=date_placed&fields%5Bstatus_text%5D=status_text&fields%5Bprice%5D=price&currency=RUR&export_format=TSV&referer=sites'); // set url to post to
    $result = curl_exec($ch);
    curl_close($ch);
    $sape_lines=explode("\n",$result);
    $sape_res=array();
    foreach ($sape_lines as $k => $v) {
        $sape_res[]=explode("\t",$v);
    }
    foreach ($sape_res as $k => $v) {
        $substr=substr($sape_res[$k][1],0,10);
        $sape_res[$k][1]=trim($substr,' ');
    }
    $sape_dates=array();
    $sape_count=0;
    $sape_levels=array();
    foreach ($sape_res as $k => $v) {
        if ($v[2]=='OK'){
            $dates=explode('.',$v[1]);
            $sape_dates[$dates[2]][$dates[1]][$dates[0]]+=$v[3];
            $sape_count+=$v[3];
            $sape_levels[$v[0]]++;
        }
    }
    foreach ($sape_dates as $k => $v) {
        foreach ($sape_dates[$k] as $k2 => $v2) {
            ksort($sape_dates[$k][$k2]);
        }
    }
    if ($sape_count){
    $month_names=array("январь","февраль","март","апрель","май","июнь","июль","август","сентябрь","октябрь","ноябрь","декабрь");
    print '<div id="sape" style="float:right;font-size:0.8em;padding:0.8em;background:#fafaff;border:3px solid #eee;">
    <a class="right" href="javascript:toggle3(\'sape\')"><img src="/images/delete_ico.png" alt="X"></a><h1>Доход с Sape.ru</h1>';
    foreach ($sape_dates as $k => $v){

        $sape_year='';
        $sape_year_count=0;
        foreach ($v as $k2 => $v2) {
            $sape_mouth='';
            $sape_mouth_count=0;
            foreach ($v2 as $k3 => $v3) {
                $sape_mouth.='<div rel="sape_'.$k3.'.'.$k2.'.'.$k.'" class="textblock left_margin2" style="border-left:1px dotted #bbb;border-bottom:2px solid #eee;padding-left:4.5em;">'.$k3.'<div class="right">'.$v3.'</div></div>';
                $sape_mouth_count+=$v3;
            }
            $sape_year.='<div rel="sape_'.$k2.'.'.$k.'" class="textblock left_margin2" style="border-left:1px dotted #bbb;border-bottom:2px solid #eee;padding-left:0.8em;"><a href="javascript:toggle3(\'sape_'.$k2.'_'.$k.'\');">'.$month_names[$k2-1].'</a><div class="right bold">'.$sape_mouth_count.'</div></div><div id="sape_'.$k2.'_'.$k.'" class="hide">'.$sape_mouth.'</div>';
            $sape_year_count+=$sape_mouth_count;
        }
        print '<div style="border-bottom:4px solid #ddd;margin-top:4px;">
        <a href="javascript:toggle3(\'sape_'.$k.'\');" class="grey">'.$k.'</a>
        <div class="right bold" style="color:red;">'.$sape_year_count.'руб.</div></div><div id="sape_'.$k.'" class="hide">'.$sape_year.'</div>';
    }
    foreach ($sape_levels as $k => $v){
        print 'Ссылок '.$k.' уровня: '.$v.'<br>';
    }
    print "<br>На сумму в месяц:<br>".$sape_count." - ".($sape_count*0.1)."= ".($sape_count*0.9)."руб. в месяц<br>";
    $sape_count=$sape_count*0.9;
    print "<br>В день: <b>".($sape_count/30)."руб.</b>";
    }
}
В $config['sape']['login'] хранится логин, в $config['sape']['pass'] пароль.
Дата записи: 21.01.2010 17:11
Собственные проекты:
GameCommunity.ru, GameSocial.Net (TV), ART-Talk.ru, Дград.инфо
On1x blog
my ip