10.06.15, 10:52
0 комментарий
  Уроки

Пишем простенький скрипт анализа сайта

Сегодня существует множество инструментов для анализа сайта, но ведь это не повод отказываться от написания своего?

Прежде всего определимся, что нам действительно нужно. Для себя я отобрал следующие показатели:

— дата регистрации домена;
— IP адрес;
— заголовок, ключевые слова, описание;
— тИЦ и PR;
— индексация в поисковых системах;
— присутствие в Яндекс Каталоге и DMOZ;
— средняя посещаемость по LiveInternet;
— внешние и внутренние ссылки;
— robots.txt.

Для начала нам хватит. Итак, первым делом разрабатываем внешний вид странички анализа. В общем-то, он не отличается от остальных моих скриптов.

1. index.php:

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Скрипт анализа сайта</title>
<link rel="stylesheet" type="text/css" href="style.css">
<script language="javascript" src="jquery.js" type="text/javascript"></script>
<script language="javascript" src="light.js" type="text/javascript"></script>
<script type="text/javascript">
        jQuery(document).ready(function($) {

                function PushTheButton(TEvent) {
                        if (TEvent.keyCode == 13) {
                                if (document.getElementById('an_site').focused)
                                        an_site_light();
                        }
                }

                $(document).bind('keyup', PushTheButton);
        });
</script>
</head>
<body onload="$('#an_site').focus()">

<table border="1" width="100%" cellpadding="10px" cellspacing="0" bordercolor="#4d77a0" style="-moz-border-radius: 10px; -webkit-border-radius: 10px; border-radius: 10px;" rules="none">

<tr>
<td valign="top">

<div id="show_an_site_tab">

Адрес вашего сайта:<br><br>
<input id='an_site' type='text' name='an_site' maxlength='100' style='width:250px' onfocus="this.focused=true;" onblur="this.focused=false;"><br><br>
<input type='button' value='Анализ' onclick='an_site_light();'><br><br>

<div id='show_an_site' style='display: none;'></div>

</div>

</td>
</tr>
</table>

<br>
© <a href="http://artdev.org/shop/" target="_blank" title="ArtDev.org - сообщество программистов">ArtDev.org</a>

</body>
</html>


Так как я писал код в далеком 2009 году, то использовал jQuery версии 1.3.2, а также старую библиотеку phpWhois. Вы можете сделать все более современным. style.css оставляю на ваше усмотрение.

2. Весь javascript расположен в light.js:

function an_site_light()
{
 var dt;
 $.post("date.php", function(data) {
    dt=data;

    $.ajax({
        type: "POST",
        url: "site.php",
        cache: false,
        data: { site: $("#an_site").attr("value") },
        success: function(data) {
           if (data != "c") {
              if (data != "")
                 alert(data);
           }
           else {
              $("#show_an_site").html("<b>Информация о сайте "+$("#an_site").attr("value")+"</b><br><br><div id='an'><img src='ajax-loader.gif'></div>");
              $.post("whois_created.php", { whois: $("#an_site").attr("value") }, function(data) {
                 if ((data != "1.1.1970") && (data != dt) && (data != "-"))
                    $("#an").html("Домен создан "+data+"<br><br>");
                 else
                    $("#an").html("Дата создания домена не определена<br><br>");
                 $.post("header.php", { site: $("#an_site").attr("value") }, function(data) {
                    $("#an").append(data);

                    $.post("ya.php", { site: $("#an_site").attr("value") }, function(data) {
                       b_tic = data;

                       $.post("ya.php", { site: "www."+$("#an_site").attr("value") }, function(data) {
                          if (b_tic >= data)
                             $("#an").append("тИЦ ресурса "+b_tic+"<br>");
                          else {
                             b_tic=data;
                             $("#an").append("тИЦ ресурса "+b_tic+"<br>");
                          }

                          $.post("pr.php", { dc: "http://toolbarqueries.google.com", site: $("#an_site").attr("value") }, function(data) {
                             b_pr = data;

                             $.post("pr.php", { dc: "http://toolbarqueries.google.com", site: "www."+$("#an_site").attr("value") }, function(data) {
                                if (b_pr >= data)
                                   $("#an").append("PR ресурса "+b_pr+"<br><br>");
                                else {
                                   b_pr=data;
                                   $("#an").append("PR ресурса "+b_pr+"<br><br>");
                                }

                                $("#an").append("Проиндексировано Яндексом <a href='http://yandex.ru/yandsearch?text=site:"+$("#an_site").attr("value")+"' target='_blank'>смотреть</a><br>");
                                $("#an").append("Проиндексировано Google <a href='http://www.google.ru/search?&q=site:"+$("#an_site").attr("value")+"' target='_blank'>смотреть</a><br>");
                                $.post("ya_cat.php", { site: $("#an_site").attr("value") }, function(data) {
                                   $("#an").append("Яндекс каталог <a href='http://search.yaca.yandex.ru/yandsearch?text="+$("#an_site").attr("value")+"&rpt=rs2' target='_blank'>"+data+"</a><br>");
                                   $.post("dmoz.php", { site: $("#an_site").attr("value") }, function(data) {
                                      $("#an").append("DMOZ <a href='http://search.dmoz.org/cgi-bin/search?search="+$("#an_site").attr("value")+"' target='_blank'>"+data+"</a><br><br>");
                                      $.post("li_stat.php", { site: $("#an_site").attr("value") }, function(data) {
                                         $("#an").append("Средняя посещаемость "+data+"<br><br>");
                                         $.post("middle.php", { site: $("#an_site").attr("value") }, function(data) {
                                            $("#an").append(data);
                                            alert("Анализ сайта завершен.");
                                         });
                                      });
                                   });
                                });
                             });
                          });
                       });
                    });
                 });
              });
              $("#show_an_site").append("<br><a onclick='$(\"#show_an_site\").fadeOut();' style='text-decoration:underline;'>скрыть</a>");
              $("#show_an_site").fadeIn();
           }
        }

    });
 });
}


Не смотрите на размер, на самом деле функция очень простая. В ней лишь идет пересылка данных в нужные файлы с помощью Ajax. Подробнее об этом лучше почитать здесь. Там вы найдете описания всех использованных методов. Не забудьте также подобрать картинку ajax-loader.gif.

3. Настроим curl — grab.php:

<?php

function grab($site) {
        $ch = curl_init();
        curl_setopt($ch, CURLOPT_URL, $site);
        curl_setopt($ch, CURLOPT_USERAGENT, $_SERVER['HTTP_USER_AGENT']);
        curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
        curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 10);
        $data = curl_exec($ch);
        curl_close($ch);
        if ($data) return $data; else return FALSE;
}

function size($site) {
        $ch = curl_init();
        curl_setopt($ch, CURLOPT_URL, $site);
        curl_setopt($ch, CURLOPT_USERAGENT, $_SERVER['HTTP_USER_AGENT']);
        curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
        curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 10);
        curl_exec($ch);
        $fs = curl_getinfo($ch, CURLINFO_SIZE_DOWNLOAD);
        curl_close($ch);
        if ($fs) return $fs; else return FALSE;
}

function robots($site) {
        $ch = curl_init();
        curl_setopt($ch, CURLOPT_URL, $site);
        curl_setopt($ch, CURLOPT_USERAGENT, $_SERVER['HTTP_USER_AGENT']);
        curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
        curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 10);
        $data = curl_exec($ch);
        $hc = curl_getinfo($ch, CURLINFO_HTTP_CODE);
        curl_close($ch);
        if ($hc!="200") $data="robots.txt не найден.";
        return $data;
}

?>


Все стандартно и не представляет никакой сложности. grab служит для парсинга страницы, size определяет ее размер, а robots запрашивает соответствующий файл — robots.txt.

4. Пойдем по порядку. Файлы библиотеки phpWhois размещаем в папке whois и пишем небольшой код для обращения к ним — whois_created.php:

<?php

   header('Content-type: text/html; charset=utf-8');

   include('whois/whois.main.php');

   if (substr($_POST['whois'], 0, 7) == "http://")
      $_POST['whois'] = str_replace("http://", "", $_POST['whois']);
   if (substr($_POST['whois'], 0, 4) == "www.")
      $_POST['whois'] = str_replace("www.", "", $_POST['whois']);
   $whois = new Whois();
   $result = $whois->Lookup($_POST['whois']);

   if (trim($result['regrinfo']['domain']['created']) != "")
      echo(date('j.n.Y',strtotime($result['regrinfo']['domain']['created'])));
   else
      echo('-');

?>


5. Приступаем непосредственно к парсингу — header.php:

<?php

   header('Content-type: text/html; charset=utf-8');

   include('grab.php');

   function check($id) {

      if (substr($_POST['site'], 0, 7) == 'http://')
         $_POST['site'] = str_replace('http://', '', $_POST['site']);
      if (substr($_POST['site'], 0, 4) == 'www.')
         $_POST['site'] = str_replace('www.', '', $_POST['site']);

      $ip = gethostbyname($_POST['site']);

      $_POST['site'] = 'http://'.$_POST['site'];

      $html = grab($_POST['site']);
      $fs = size($_POST['site']);

      if (empty($html))
         exit('Сайт не открылся !<br><br>');

      echo('IP - '.$ip.'<br>');
      echo('Размер страницы - '.round($fs/1024,1).' КБ ('.$fs.' байт)<br><br>');

      $status = (preg_match("/<title>(.*?)<\/title>/", $html, $title))? 1 : 0;
      if ($status == 1)
         echo('Заголовок - "'.$title[1].'"<br><br>');
      else
         echo('<b>Заголовок отсутствует.</b><br><br>');

      $meta = get_meta_tags($_POST['site']);

      if ($meta["keywords"] != "")
         echo('Ключевые слова - "'.$meta["keywords"].'"<br><br>');
      else
         echo('<b>Ключевые слова отсутствуют.</b><br><br>');

      if ($meta["description"] != "")
         echo('Описание - "'.$meta["description"].'"<br><br>');
      else
         echo('<b>Описание отсутствует.</b><br><br>');
   }

   check($_POST['site']);

?>


gethostbyname получает искомую последовательность цифр IP адреса, с помощью регулярного выражения preg_match мы выделяем заголовок, ну а мета теги забираем функцией get_meta_tags.

6. ya.php отвечает за определение тИЦ:

<?php

header('Content-type: text/html; charset=utf-8');

include('grab.php');

function get_yandex($url){
        
        $ret = 'N/A';
        
        if(substr($url,0,7) != 'http://')
                $url = 'http://' . $url;
                
        if($content = grab('http://bar-navig.yandex.ru/u?ver=2&url='.urlencode($url).'&show=1&post=0')){
                
                if( class_exists('SimpleXMLElement') ){
                        if( $xmldoc = new SimpleXMLElement($content) ){
                                $tcy = $xmldoc->tcy;
                                if( !empty($tcy) ) $ret = $tcy['value'];
                        }
                }
                else{
                        preg_match("/value=\"(.\d*)\"/",$content,$tic);
                        if( !empty($tic[1]) ) $ret = $tic[1];
                }
        }
        
        return base_convert($ret,10,10);

}

 if(substr($_POST['site'],0,7) != 'http://')
                $_POST['site'] = 'http://' . $_POST['site'];

 $path = parse_url($_POST['site']);

 echo(get_yandex($path['host']));

?>


Я уже как-то рассказывал, что есть несколько способов его получения. Здесь использовался самый простой: отправка домена по адресу bar-navig.yandex.ru/u?ver=2&url=http://site.ru&show=1&post=0, где на выдаче стоит XML документ. Нам лишь остается его распарсить — забрать значение, которое находится в свойстве value тега tcy.

7. pr.php определяет PageRank:

<?php
error_reporting(E_ALL ^ E_NOTICE);

$googlehost='toolbarqueries.google.com';
$googleua='Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.0.6) Gecko/20060728 Firefox/1.5';

function StrToNum($Str, $Check, $Magic) {
  $Int32Unit = 4294967296;
  $length = strlen($Str);
  for ($i = 0; $i < $length; $i++) {
      $Check *= $Magic;  
      if ($Check >= $Int32Unit) {
          $Check = ($Check - $Int32Unit * (int) ($Check / $Int32Unit));
          $Check = ($Check < -2147483648) ? ($Check + $Int32Unit) : $Check;
      }
      $Check += ord($Str{$i});
  }
  return $Check;
}

function HashURL($String) {
  $Check1 = StrToNum($String, 0x1505, 0x21);
  $Check2 = StrToNum($String, 0, 0x1003F);
  $Check1 >>= 2;  
  $Check1 = (($Check1 >> 4) & 0x3FFFFC0 ) | ($Check1 & 0x3F);
  $Check1 = (($Check1 >> 4) & 0x3FFC00 ) | ($Check1 & 0x3FF);
  $Check1 = (($Check1 >> 4) & 0x3C000 ) | ($Check1 & 0x3FFF);
  $T1 = (((($Check1 & 0x3C0) << 4) | ($Check1 & 0x3C)) <<2 ) | ($Check2 & 0xF0F );
  $T2 = (((($Check1 & 0xFFFFC000) << 4) | ($Check1 & 0x3C00)) << 0xA) | ($Check2 & 0xF0F0000 );
  return ($T1 | $T2);
}

function CheckHash($Hashnum) {
  $CheckByte = 0;
  $Flag = 0;
  $HashStr = sprintf('%u', $Hashnum);
  $length = strlen($HashStr);
  for ($i = $length - 1;  $i >= 0;  $i --) {
      $Re = $HashStr{$i};
      if (1 === ($Flag % 2)) {              
          $Re += $Re;    
          $Re = (int)($Re / 10) + ($Re % 10);
      }
      $CheckByte += $Re;
      $Flag ++;
  }
  $CheckByte %= 10;
  if (0 !== $CheckByte) {
      $CheckByte = 10 - $CheckByte;
      if (1 === ($Flag % 2) ) {
          if (1 === ($CheckByte % 2)) {
              $CheckByte += 9;
          }
          $CheckByte >>= 1;
      }
  }
  return '7'.$CheckByte.$HashStr;
}

function getch($url) { return CheckHash(HashURL($url)); }

function getpr($url) {
global $googlehost,$googleua;
$ch = getch($url);
$fp = fsockopen($googlehost, 80, $errno, $errstr, 30);
if ($fp) {
  $out = "GET /tbr?client=navclient-auto&hl=en&ch=$ch&ie=UTF-8&oe=UTF-8&features=Rank&q=info:$url HTTP/1.1\r\n";
  $out .= "User-Agent: $googleua\r\n";
  $out .= "Host: $googlehost\r\n";
  $out .= "Connection: Close\r\n\r\n";
  fwrite($fp, $out);
  while (!feof($fp)) {
 $data = fgets($fp, 128);
 $pos = strpos($data, "Rank_");
 if($pos === false){} else{
  $pr=substr($data, $pos + 9);
  $pr=trim($pr);
  $pr=str_replace("\n",'',$pr);
  return $pr;
 }
  }
  fclose($fp);
}
}

function pagerank($url) {
if (!preg_match('/^(http:\/\/)?([^\/]+)/i', $url)) { $url='http://'.$url; }
$pr=getpr($url);
$pagerank="$pr";
$out=''.$pagerank.'';
return $out;
}

$url = $_POST['site'];
if (substr($url, 0, 7) == "http://")
    $url = str_replace("http://", "", $url);
if (substr($url, 0, 4) == "www.")
    $url = str_replace("www.", "", $url);
$pr = pagerank($url);
if ($pr == "")
    $pr = 0;
echo $pr;
?>


Код полностью скопирован с одного из гуглосообществ.

8. Индексация.

Можно было, конечно, спарсить количество проиндексированных страниц непосредственно из выдачи поисковой системы, но этот путь при многократном использовании ведет к бану IP, так что просто дадим ссылки. Тем же, кто хочет узнать как это сделать — сюда.

9. Присутствие в ЯК проверяем в ya_cat.php:

<?php

   header('Content-type: text/html; charset=utf-8');

   include('grab.php');

   function ya_cat($url) {
      $url = urlencode($url);
      $str = grab('http://yaca.yandex.ru/yca?text='.$url.'&yaca=1');

      preg_match("/<title>.*\((.*)\)<\/title>/siU", $str, $out);

      return trim($out[1]);
   }

   $url = $_POST['site'];

   if (substr($url, 0, 7) == "http://")
      $url = str_replace("http://", "", $url);
   if (substr($url, 0, 4) == "www.")
      $url = str_replace("www.", "", $url);

   $yaca = ya_cat($url);

   if ($yaca == 0)
      $yaca = "нет";
   else if ($yaca >= 1)
      $yaca = "есть";

   echo($yaca);

?>


Если сайт найден, то в заголовке будут отображены данные, в том числе и количество совпадений.

10. Наличие в DMOZ смотрим из dmoz.php:

<?php

header('Content-type: text/html; charset=utf-8');

include('grab.php');

function get_dmoz_count($host){
        $ret = 0;
        
        if ($s = grab('http://www.dmoz.org/search/?q='.$host)) {
                if (preg_match('/<small>\(\d+\-\d+ of (\d+)\)<\/small>/siU', $s, $a) ){
                        $ret = $a[1];
                }
        }
        
        return $ret;
}

$url = $_POST['site'];

if (substr($url, 0, 7) == "http://")
   $url = str_replace("http://", "", $url);
if (substr($url, 0, 4) == "www.")
   $url = str_replace("www.", "", $url);

$dm = get_dmoz_count($url);

if ($dm == 0)
   $dm="нет";
else if ($dm >= 1)
   $dm="есть";

echo($dm);

?>


Принцип тот же. Опять перебираем текст и находим в нужном теге число: 0 — нет, >1 — есть.

11. С посещаемостью по LI справится даже ребенок — li_stat.php:

<?php

header('Content-type: text/html; charset=utf-8');

include('grab.php');

function li_stat($url){
        
        $lines = grab("http://counter.yadro.ru/values?site=".$url);
        $info = array();
        $lines = explode("\n", $lines);
        foreach ($lines as $line){
                if (preg_match("|LI_([^ ]+) = (\d*);|", $line, $ok)) {
                        $info[$ok[1]] = $ok[2];
                }
        }

        return $info;
}
$url = $_POST['site'];

if (substr($url, 0, 7) == "http://")
        $url = str_replace("http://", "", $url);
if (substr($url, 0, 4) == "www.")
        $url = str_replace("www.", "", $url);

$ff = li_stat($url);
if (strlen($ff[month_hit]) < 1) {
        $li="-";
} else {
        $srv=floor($ff[week_vis]/7);
        $srh=floor($ff[week_hit]/7);
        $li="$srv / $srh";
}
echo($li);

?>


Надо всего лишь знать правильные адреса. Мы разбиваем полученные данные по строкам и рассматриваем каждую, пока не найдем нужное число.

12. Внешние и внутренние ссылки можно посмотреть в middle.php (там же и запрос robots.txt):

<?php

        header('Content-type: text/html; charset=utf-8');

        include('grab.php');

        function check($id) {

                if (substr($_POST['site'], 0, 7) == 'http://')
                        $_POST['site'] = str_replace('http://', '', $_POST['site']);
                if (substr($_POST['site'], 0, 4) == 'www.')
                        $_POST['site'] = str_replace('www.', '', $_POST['site']);
                $_POST['site'] = 'http://'.$_POST['site'];

                $html = grab($_POST['site']);

                if (empty($html))
                        exit('Сайт не открылся !');

                $cvne=0;
                $cvnu=0;
                $status = (preg_match_all("/<a.*?href=(?:\"|')(.*?)(?:\"|')/", $html, $res))? 1 : 0;
                if ($status == 1)
                {
                        echo('<b>Внешние ссылки</b><br>');
                        if (substr($_POST['site'], 0, 7) == 'http://')
                                $_POST['site'] = str_replace('http://', '', $_POST['site']);
                        if (substr($_POST['site'], 0, 4) == 'www.')
                                $_POST['site'] = str_replace('www.', '', $_POST['site']);
                        $_POST['site'] = 'http://'.$_POST['site'];
                        for ($i = 0; $i < count($res[1]); $i++)
                                {
                                        if ((substr($res[1][$i], 0, 7) == 'http://') or (substr($res[1][$i], 0, 4) == 'www.'))
                                        {
                                                if (substr($res[1][$i], 0, 7) == 'http://')
                                                        $res[1][$i] = str_replace('http://', '', $res[1][$i]);
                                                if (substr($res[1][$i], 0, 4) == 'www.')
                                                        $res[1][$i] = str_replace('www.', '', $res[1][$i]);
                                                $res[1][$i] = 'http://'.$res[1][$i];
                                                $path = parse_url($res[1][$i]);
                                                $url = parse_url($_POST['site']);

                                                if ($path['host'] != $url['host'])
                                                {
                                                        $cvne++;
                                                        if ($cvne == 1)
                                                                echo('<textarea style="width:400px; height: 300px;">');
                                                        echo($res[1][$i]."\n");
                                                }
                                        }
                                }

                        if ($cvne == 0)
                                echo('отсутствуют<br><br>');
                        else
                                echo('</textarea><br>Общее количество внешних ссылок - '.$cvne.'<br><br>');

                        echo('<b>Внутренние ссылки</b><br>');
                        for ($i = 0; $i < count($res[1]); $i++)
                                {
                                        if((substr($res[1][$i], 0, 7) == 'http://') or (substr($res[1][$i], 0, 4) == 'www.'))
                                        {
                                                if (substr($res[1][$i], 0, 7) == 'http://')
                                                        $res[1][$i] = str_replace('http://', '', $res[1][$i]);
                                                if (substr($res[1][$i], 0, 4) == 'www.')
                                                        $res[1][$i] = str_replace('www.', '', $res[1][$i]);
                                                $res[1][$i] = 'http://'.$res[1][$i];
                                                $path = parse_url($res[1][$i]);
                                                $url = parse_url($_POST['site']);
                                                if ($path['host'] == $url['host'])
                                                {
                                                        $cvnu++;
                                                        if ($cvnu == 1)
                                                                echo('<textarea style="width:400px; height: 300px;">');
                                                        echo($res[1][$i]);
                                                        echo("\n");
                                                }
                                        }
                                        else
                                        {
                                                $cvnu++;
                                                if ($cvnu == 1)
                                                        echo('<textarea style="width:400px; height: 300px;">');
                                                echo($res[1][$i]);
                                                echo("\n");
                                        }
                                }
                        if ($cvnu == 0)
                                echo('отсутствуют<br><br>');
                        else
                                echo('</textarea><br> Общее количество внутренних ссылок - '.$cvnu.'<br><br>');
                }
                else
                        echo('Ссылки отсутствуют !<br><br>');

                echo('<pre>'.robots($_POST['site']."/robots.txt").'</pre>');

        }

        check($_POST['site']);

?>


Регуляркой мы выделяем все ссылки на странице, а затем простым перебором сравниваем хосты у полученной и текущей (адрес сайта). Если совпадают, то ссылка внутренняя. Если нет, то внешняя.

13. Осталось парочка служебных файлов. Один из них date.php:

<?php

header('Content-type: text/html; charset=utf-8');

$dt = date('j.n.Y');

echo($dt);

?>


Думаю, комментарии излишни.

14. В site.php идет контроль заполнения:

<?php

if (empty($_POST['site']))
   exit('Поле "Сайт" не заполнено !');

if (!empty($_POST['site'])) {
   $url = $_POST['site'];
   if (substr($url, 0, 7) == "http://")
      $url = str_replace("http://", "", $url);
   if (substr($url, 0, 4)=="www.")
      $url = str_replace("www.", "", $url);
   if (!preg_match("|^[0-9a-z\._-]+\.[a-z]{2,5}$|i", $url))
      exit('Поле "Сайт" должно соответствовать формату somewhere.ru !');
   else
      exit('c');
}

?>


Вот и все.

Урок подготовил Хедин

ДЕМО

Посмотреть
пример

Реклама

Напишите своё мнение

  • acuteaggressiveair_kissangel
    badbbbeachbeee
    biggrinbig_bossblumblush
    boastbombboredombye
    clappingcraycrazycurtsey
    dancedashdeclarediablo
    diroldon-t_mentiondownloaddrinks
    first_moveflirtfocusfool
    friendsgive_heartgive_rosegood
    hangheartheathelp
    hihunterhystericireful
    kingkisslaughlazy
    lolmail1mambaman_in_love
    mdamega_shokmoilmosking
    musicneanegativenew_russian
    okon_the_quietpardonparting
    partypilotpioneerpleasantry
    popcormpranksterprevedpunish
    roflrtfmrussiansad
    sarcasticscarescratchsearch
    secretsensoredshokshout
    slowsmilesmokesoldier
    soldier_girlsorryspitefulspruce_up
    stinkersuicidesunsuperstition
    swoonteasetenderthanks
    thisto_pick_ones_noseto_take_umbragetreaten
    umnikunknwvampirevava
    victorywackowhistlewink
    wizardyahooyesyu
    e101e102e103e104
    e105e106e107e108
    e109e110e111e112
    e113e114e115e116
    e117e118e119e120
    e121e122e123e124
    e125e126e127e128
    e129e130e131e132
    e133e134e135e136
    e137e138e139e140
    e141e142e143e144
    e145e146e147e148
    e149e150e151e152
    e153e154e155e156
    e157e158e159e160
    e161e162e163e164
    e165e166e167e168
    e169e170e171e172
    e173e174e175e176
    e177e178e179e180
    e181e182e183e184
    e185e186e187e188
    e189e190e191e192
    e193e194e195e196
    e197e198e199e200
    e201e202e203e204