рдХрд┐рд╕реА рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдкреГрд╖реНрда рдкрд░ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╕реЗ VKontakte рддрдХ рдбреЗрдЯрд╛ рдкреЛрд╕реНрдЯ рдХрд░рдирд╛


рд╣рд╛рд▓ рд╣реА рдореЗрдВ рдореИрдВ VKontakte рдкрд░ рджреИрдирд┐рдХ рдореМрд╕рдо рдбреЗрдЯрд╛ рдХреЛ рдкреНрд░рдХрд╛рд╢рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрдХрд╡рд╛рд╕ рдХрд░рдиреЗ рдХреЗ рд╡рд┐рдЪрд╛рд░ рдХреЗ рд╕рд╛рде рдЖрдпрд╛ рдерд╛, рдХреНрдпреЛрдВрдХрд┐ рдХрд╛рдо рд╕реЗ рдкрд╣рд▓реЗ рд╕реБрдмрд╣ рдореЗрдВ рдЧрд░реНрдорд┐рдпреЛрдВ рдореЗрдВ рдореИрдВ рдЕрдХреНрд╕рд░ рдореМрд╕рдо рдХреА рд╕рд╛рдЗрдЯ рдХреЛ рджреЗрдЦрдирд╛ рднреВрд▓ рдЬрд╛рддрд╛ рдерд╛ рдФрд░ рдореМрд╕рдо рдХреЗ рдкреВрд░реНрд╡рд╛рдиреБрдорд╛рди рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЕрд▓рдЧ рддрд░реАрдХреЗ рд╕реЗ рдХрдкрдбрд╝реЗ рдкрд╣рдирдиреЗ рдХреА рд╕рд▓рд╛рд╣ рджреЗрддрд╛ рдерд╛ред рдЗрд╕ рд╡рд┐рд╖рдп рдореЗрдВ, VKontakte рдкрд░ рдкреЛрд╕реНрдЯрд┐рдВрдЧ рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдФрд░ рдореИрдВ рдЬреЛ рдХрд░рдиреЗ рдореЗрдВ рдХрд╛рдордпрд╛рдм рд░рд╣рд╛, рдЙрд╕рд╕реЗ рд▓рд╛рдн рдХреЗ рд╕рд╛рде рдПрдХ рдЙрджрд╛рд╣рд░рдг рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЪрд░реНрдЪрд╛ рд╣реЛрдЧреАред

рд╡рд┐рдЪрд╛рд░
рдпрд╣ рд╕рдм рдПрдХ рд╡рд┐рдЪрд╛рд░ рдХреЗ рд╕рд╛рде рд╢реБрд░реВ рд╣реБрдЖ - рдкрд╣рд▓реА рдмрд╛рд░ рдореЗрдВ рдпрд╣ рдореЗрд░реЗ рд▓рд┐рдП рдереЛрдбрд╝рд╛ рдЙрдмрд╛рдК рд▓рдЧ рд░рд╣рд╛ рдерд╛, рдФрд░ рдореИрдВрдиреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдореЗрдВ рдмрд┐рдВрджреБ рдирд╣реАрдВ рджреЗрдЦрд╛, рд▓реЗрдХрд┐рди рджреЛ рдмрд╛рд░ (рдпрд╛ рддреАрди рдмрд╛рд░) рд╕реЛрдЪрдиреЗ рдХреЗ рдмрд╛рдж, рдореБрдЭреЗ рдПрд╣рд╕рд╛рд╕ рд╣реБрдЖ рдХрд┐ рдЗрд╕рд╕реЗ рдореЗрд░реЗ рдХреМрд╢рд▓ рдореЗрдВ рдХреБрдЫ рд▓рд╛рдн рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдФрд░ рдиреАрдЪреЗ :)

рдЕрдЬрдЧрд░ рдпрд╛ PHP
рдкрд╣рд▓реА рдмрд╛рдд рдпрд╣ рдереА рдХрд┐ рдореИрдВ рдЬреЛ рдХреБрдЫ рд▓рд┐рдЦреВрдВрдЧрд╛, рд╡рд╣ рдкрд╕рдВрдж рдирд╣реАрдВ рдерд╛ - рдкрд╕рдВрдж рдорд╣рд╛рди рдФрд░ рд╕реАрдорд┐рдд рдирд╣реАрдВ рдереА: рдЕрдЬрдЧрд░, рдЬрд┐рд╕реЗ рдореИрдВ рд╕рдЪрдореБрдЪ рдХреБрдЫ рдорд╣реАрдиреЗ рдпрд╛ php рдЬрд╛рдирддрд╛ рд╣реВрдВ - рдЬрд┐рд╕рдХреЗ рд╕рд╛рде рдореИрдВ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА 4 рд╡рд░реНрд╖реЛрдВ рд╕реЗ рд╡рд┐рднрд┐рдиреНрди рдЫреЛрдЯреА рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд╛ рдЕрднреНрдпрд╛рд╕ рдХрд░ рд░рд╣рд╛ рд╣реВрдВред рдПрдХ рдкреБрд░рд╛рдиреЗ рдСрдмрдВрдЯ рдХреЗ рддрд╣рдд рдПрдХ рдЖрднрд╛рд╕реА рд╡рд╛рддрд╛рд╡рд░рдг рдмрдирд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рдФрд░ рдЗрд╕рдХреЗ рд╕рд╛рде рдХреБрд╢реНрддреА рдХрд░ рд░рд╣рд╛ рд╣реВрдВред рд▓рдЧрднрдЧ рдХрдИ рдШрдВрдЯреЛрдВ рдХреЗ рд▓рд┐рдП, рдореИрдВрдиреЗ рддрдп рдХрд┐рдпрд╛ рдХрд┐ рдореИрдВ рдЕрдЬрдЧрд░ рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рд▓рд┐рдП рдЕрднреА рддрдХ рдкрд░рд┐рдкрдХреНрд╡ рдирд╣реАрдВ рд╣реБрдЖ рд╣реВрдВ :) рдЗрд╕рд▓рд┐рдП, рд╡рд┐рдХрд▓реНрдк рд╕реНрдкрд╖реНрдЯ рдерд╛ - рдореЗрд░реЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдореЗрдВ рд╕рд░рд▓ рдФрд░ рдХрднреА-рдХрднреА рдЕрддреНрдпрдзрд┐рдХ рдЕрдирд╛рдбрд╝реАрдкрди рдХреЗ рд╕рд╛рде php (рдпрджрд┐ рдЖрдк рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рддреЗ рд╣реИрдВ рддреЛ рдореИрдВ рдЖрднрд╛рд░реА рд░рд╣реВрдВрдЧрд╛ - рд▓рд┐рдВрдХ рд▓реЗрдЦ рдХреЗ рдЕрдВрдд рдореЗрдВ рд╣реЛрдЧрд╛)ред

Vkontakte рдореЗрдВ рдкреНрд░рд╛рдзрд┐рдХрд░рдг
рдмреЗрд╢рдХ, рдореИрдВ рдкрд╣рд┐рдпрд╛ рдХреЛ рд▓рдВрдмреЗ рд╕рдордп рддрдХ рдФрд░ рд▓рдВрдмреЗ рд╕рдордп рддрдХ рд╕реБрджреГрдврд╝ рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛ рдФрд░ рд▓рдЧрд╛рддрд╛рд░ VKontakte рдкреНрд░рд╛рдзрд┐рдХрд░рдг рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрдЪреНрдЫреА рдХрдХреНрд╖рд╛ рдХреЛ Google рдореЗрдВ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА, рд▓реЗрдХрд┐рди рдореИрдВрдиреЗ рд╕рдВрдкрд░реНрдХ рдПрдкреАрдЖрдИ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдХрд╛рдо рдХрд░рдиреЗ рд╡рд╛рд▓реА рдкреНрд░рд╛рдЪреАрди рд▓рд┐рдкрд┐рдпреЛрдВ рдпрд╛ рдХрдХреНрд╖рд╛рдУрдВ рдореЗрдВ рдХрд╛рдо рдирд╣реАрдВ рдХрд┐рдпрд╛ред рджреВрд╕рд░рд╛ рд╡рд┐рдХрд▓реНрдк рдореБрдЭреЗ рдЗрд╕ рдХрд╛рд░рдг рд╕реЗ рд╢реЛрднрд╛ рдирд╣реАрдВ рджреЗрддрд╛ рдерд╛ рдХрд┐ рд╕рдореВрд╣ рдХреА рдУрд░ рд╕реЗ рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐рдпрд╛рдБ рдкреНрд░рдХрд╛рд╢рд┐рдд рдХрд░рдирд╛ рдЕрд╕рдВрднрд╡ рд╣реЛрдЧрд╛ - рдЬреИрд╕рд╛ рдХрд┐ рдореИрдВрдиреЗ рд╢реБрд░реВ рдореЗрдВ рд╣реА рд╕реЛрдЪ рд▓рд┐рдпрд╛ рдерд╛, рдХрд┐рд╕реА рдХреА рдкреБрд░рд╛рдиреА рдЯрд┐рдкреНрдкрдгреА рдкрд░ рднрд░реЛрд╕рд╛ рдХрд░рддреЗ рд╣реБрдП рд╣рдмрд░ рд╕реЗ ... рдФрд░ рд╡реНрдпрд░реНрде рдореЗрдВ! рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рдмрд╛рдж, рдореИрдВ рдПрдкреАрдЖрдИ рдХреЗ рд▓рд┐рдП рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рджрд╕реНрддрд╛рд╡реЗрдЬ рдореЗрдВ рдЧрдпрд╛ рдФрд░ рдкрдврд╝рд╛ рдХрд┐ рдпрд╣ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд╕рдВрднрд╡ рдерд╛, рд▓реЗрдХрд┐рди рдмрд╛рдЗрдХ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд▓рд┐рдЦреА рдЧрдИ рдереА ... рдЕрдм VKontakte API рдХреЗ рддрд╣рдд рдЗрд╕реЗ рдлрд┐рд░ рд╕реЗ рд▓рд┐рдЦрдиреЗ рдХреА рдпреЛрдЬрдирд╛ рд╣реИред рдЕрдЪреНрдЫреА рдЦрдмрд░ рдпрд╣ рд╣реИ рдХрд┐ рдмрд╛рдЗрдХ рдмрд┐рд▓реНрдХреБрд▓ рднреА рднрд╛рд░реА рдирд╣реАрдВ рдереА рдФрд░ рд╕рд╛рдЗрдЯ рдкрд░ рдкреНрд░рд╛рдзрд┐рдХрд░рдг рдХреЗ рдореМрдЬреВрджрд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреА рдХрдареЛрд░ рд╡рд╛рд╕реНрддрд╡рд┐рдХрддрд╛рдУрдВ рдореЗрдВ рдХрд╛рдо рдХрд┐рдпрд╛ рдерд╛ред
рдкреНрд░рд╛рдзрд┐рдХрд░рдг рдФрд░ рдкреЛрд╕реНрдЯрд┐рдВрдЧ рдХреЛрдб:
define('SCR_DIR', dirname(__FILE__)); //   include_once(SCR_DIR . '/config.php'); //  (, ,   ) include_once(SCR_DIR . '/classes/minicurl.class.php'); //    curl,     include_once(SCR_DIR . '/classes/vk_auth.class.php'); //    $vk = new vk_auth($VKEMAIL, $VKPWD, $VKPPID, $SLEEPTIME); //    , $VKEMAIL -    , $VKPWD - , $VKPPID -   , $SLEEPTIME -      //       ,    ,   ,     /data/logfile.txt if(!$vk->check_auth()) { exit('Error! See logfile.'); } //   $message     if (!$vk->post_to_wall($message)) { exit('Error! Not Posted!'); } else { echo 'Posted!'; } 


рдореМрд╕рдо рдкрд╛рд░реНрд╕рд░
рд▓реЗрдЦрдХреАрдп рд▓реЗрдЦрди рд╕рдорд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдореИрдВ рдПрдХ рдореМрд╕рдо рдкрд╛рд░реНрд╕рд░ рд▓рд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдЧреЗ рдмрдврд╝рд╛ - рдореИрдВ рдирд┐рдпрдорд┐рдд рд░реВрдк рд╕реЗ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛ рдЬреИрд╕рд╛ рдХрд┐ рдореИрдВрдиреЗ рдкрд╣рд▓реЗ рдХрд┐рдпрд╛ рдерд╛, рдХреНрдпреЛрдВрдХрд┐ рдореБрдЭреЗ рдЙрдиреНрд╣реЗрдВ рдмрд╣реБрдд рд▓рдВрдмреЗ рд╕рдордп рдХреЗ рд▓рд┐рдП рд╕реЛрдЪрдирд╛ рд╣реЛрдЧрд╛ рдФрд░ рдЕрдЧрд░ рдореИрдВ рдЙрд╕ рд╕рд╛рдЗрдЯ рдХреЛ рдмрджрд▓рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рдЬрд╣рд╛рдВ рд╕реЗ рдореМрд╕рдо рдЖрддрд╛ рд╣реИ ... рдЗрд╕ рд╕реНрддрд░ рдкрд░, рджрд┐рдорд┐рддреНрд░реА рд░реЛрдбрд┐рди рджреНрд╡рд╛рд░рд╛ рдПрдХреНрд╕рдкреАрде рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдбреЗрдЯрд╛ рдкрд╛рд░реНрд╕рд┐рдВрдЧ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдПрдХ рдмреНрд▓реЙрдЧ рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐ рдиреЗ рдореЗрд░реА рдмрд╣реБрдд рдорджрдж рдХреАред рдореИрдВрдиреЗ рдПрдХ-рджреЛ рдмрд╛рд░ XPath рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реБрдирд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдореИрдВрдиреЗ рдХрднреА рдирд╣реАрдВ рд╕реЛрдЪрд╛ рдХрд┐ рдпрд╣ рдХреНрдпрд╛ рд╣реИ - рдФрд░ рдЕрдм рдХрд┐рд╕реА рднреА рд╕рд╛рдЗрдЯ рд╕реЗ рдбреЗрдЯрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рддрд░реАрдХреЗ рд╕реЗ рдЖрдиреЗ рдХрд╛ рд╕рдордп рд╣реИред рдЕрдкрдиреА рдХрдХреНрд╖рд╛ рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░рдиреЗ рдФрд░ рдЗрд╕реЗ рдЕрдкрдиреЗ рд▓рд┐рдП рдереЛрдбрд╝рд╛ рд▓рд┐рдЦрдиреЗ рдХреЗ рдмрд╛рдж, рдореИрдВрдиреЗ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ рдХрд┐ рдпрд╣ рд╡рд╣реА рд╣реИ рдЬреЛ рдореБрдЭреЗ рдЪрд╛рд╣рд┐рдПред рд╕рднреА XPath рдкрде рдлрд╛рдпрд░рдмрдЧ рд╕реЗ рдЖрд╕рд╛рдиреА рд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд┐рдП рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдХреБрдЫ рдЧрд▓рдд рд╣реЛрдВрдЧреЗ, рдХреНрдпреЛрдВрдХрд┐ рдкрд╛рд░реНрд╕рд░ рд╕реБрд╡реНрдпрд╡рд╕реНрдерд┐рдд рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ, рдЬреЛ рдЕрдорд╛рдиреНрдп HTML-рдХреЛрдб рдХреЛ рд╕рд╛рдл рдХрд░рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдлрд╛рдпрд░рдмрдЧ рдРрдб-рдСрди - рдлрд╛рдпрд░рдкрд╛рде рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдмреЗрд╣рддрд░ рд╣реИред
рдЧрд┐рд╕реНрдореЗрдЯреЛ рдХреЗ рд╕рд╛рде рдПрдХреНрд╕рдкреАрде рдореМрд╕рдо рдкрд╛рд░реНрд╕рд┐рдВрдЧ рдЕрдиреБрд░реЛрдзреЛрдВ рдХреА рдПрдХ рдЬреЛрдбрд╝реА:
 include_once(SCR_DIR . '/classes/htmlparser.class.php'); //   $parser = new HTMLParser('http://www.gismeteo.ru/city/hourly/' . $CITY); // $CITY -   ,   $weather_temperature = $parser->getConvDataFromXPath(".//*[@id='weather']/div[1]/div/div[2]"); //          UTF-8 $weather_type = $parser->getConvDataFromXPath(".//*[@id='weather']/div[1]/div/dl/dd"); //    (, ,  ..) 


рдЗрд╕ рдЫреЛрдЯреА рд╕реА рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╕реЗ рдореБрдЭреЗ рдХреНрдпрд╛ рдорд┐рд▓рд╛:

  1. рдореИрдВрдиреЗ VKontakte рдореЗрдВ рдкреНрд░рд╛рдзрд┐рдХрд░рдг рдХреЗ рд▓рд┐рдП рдЕрдкрдиреА рдЫреЛрдЯреА рдмрд╛рдЗрдХ рд▓рд┐рдЦреА (рдПрдкреАрдЖрдИ рдХреЗ рддрд╣рдд рдЗрд╕реЗ рдлрд┐рд░ рд╕реЗ рд▓рд┐рдЦрдиреЗ рдХреА рдпреЛрдЬрдирд╛);
  2. рдореИрдВ XPath рд╕реЗ рдкрд░рд┐рдЪрд┐рдд рд╣реЛ рдЧрдпрд╛ рдФрд░ рдпрд╣ рд╕реАрдЦ рд▓рд┐рдпрд╛ рдХрд┐ рдирд┐рдпрдорд┐рдд рд░реВрдк рд╕реЗ рд╕рд╛рдЗрдЯреЛрдВ рдХреЛ рдЕрдзрд┐рдХ рддреЗрдЬрд╝ рдЙрддреНрдкрд╛рджрдХрддрд╛ рдХреЗ рд╕рд╛рде рдХреИрд╕реЗ рдкрд╛рд░реНрд╕ рдХрд┐рдпрд╛ рдЬрд╛рдП;
  3. рдореИрдВ рдЧрд┐рдд рд╕реЗ рдФрд░ рднреА рдкрд░рд┐рдЪрд┐рдд рд╣реЛ рдЧрдпрд╛;
  4. рдЕрдкрдиреЗ рд╢рд╣рд░ рдХреЗ рд▓рд┐рдП рдПрдХ рдЫреЛрдЯреА рдЙрдкрдпреЛрдЧреА "рд╕реЗрд╡рд╛" рдмрдирд╛рдИред
  5. рдЬрд▓реНрдж рд╣реА рдореБрдЭреЗ рдкрддрд╛ рдЪрд▓реЗрдЧрд╛ рдХрд┐ рдХреНрдпрд╛ рд╕рдВрдкрд░реНрдХ рдХреЗ рд╕рднреА рдЖрдЧрдВрддреБрдХ рдРрд╕реА рд╕рдмреНрдЬрд┐рдпрд╛рдВ рд╣реИрдВ рдХрд┐ рд╡реЗ рдЙрдкрдпреЛрдЧреА рдЬрд╛рдирдХрд╛рд░реА рдореЗрдВ рд░реБрдЪрд┐ рдирд╣реАрдВ рд░рдЦрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдХреЗрд╡рд▓ рдЪрд┐рддреНрд░, рдФрд░ рдЕрдЬреАрдм рд╕реНрдерд┐рддрд┐;


рдЖрдк рдЗрд╕ рдкреГрд╖реНрда рдкрд░ рдореЗрд░реЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЛ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ: рд╡реЛрд▓реЛрдЧреНрджрд╛ рдореЗрдВ рдореМрд╕рдо ред
рд╕реНрд░реЛрдд рдХреЛрдб рджреЗрдЦреЗрдВ рдпрд╛ рдЕрдкрдиреЗ рд╢рд╣рд░ рдХреЗ рд▓рд┐рдП рдПрдХ рд╣реА рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдореМрд╕рдо рдкреГрд╖реНрда рдмрдирд╛рдПрдВ: github.com/saippuakauppias/kkkeather

рдкреБрдирд╢реНрдЪ: рдпрджрд┐ рдХрд┐рд╕реА рдХреЛ рдЗрд╕рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рддреЛ рдореИрдВ рдХреЗрд╡рд▓ VKontakte рдкреНрд░рд╛рдзрд┐рдХрд░рдг рд╡рд░реНрдЧ рдХреЗ рд╕рд╛рде рдПрдХ рдЕрд▓рдЧ рдХрд╛рдВрдЯрд╛ рдмрдирд╛ рд╕рдХрддрд╛ рд╣реВрдВ - рдПрдХ рд╡реНрдпрдХреНрддрд┐рдЧрдд рдореЗрдВ рд▓рд┐рдЦ рд╕рдХрддрд╛ рд╣реВрдВред

Source: https://habr.com/ru/post/In127952/


All Articles