https://www.lexium.ru/2018/01/kak-ya-delal-antidryshha-kod-i-trepet/

Как я делал Антидрыща (собственный виджет для твиттера)

Однажды мне в голову пришла явная глупость. Впрочем, в тот момент идея казалась превосходной, хотя я и был трезв. Идея простая и незатейливая — заняться спортом.

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

Вот и тогда… Только-только отгремели новогодние праздники, злорадно вернулись будни… И вот сижу я такой, думу думаю: а не стать ли мне сильнее, здоровее, красивее?

Но так как я опытное динамо на спортивную тему, то решил в этот раз сделать все с подвыпердом. Чтобы не соскочить и довести до конца.

Сделал я сайт (я делаю их в любой непонятной ситуации), а на нем разместил счетчик и описание.

В описании говорилось следующее.

Мол я, такой-сякой, обязуюсь до конца этого года отжаться и/или присесть 40000 раз. Почему приседания или отжимания? Отжимания развивают грудную клетку и верхние конечности. Приседания — все мышцы и общую выносливость (вычитал в одном дофига-умном журнале).

Если мол, не успею сделать 40000, то все что осталось умножу на рубль и на полученную сумму куплю сигарет для одного курящего родственника.

Сайт назвал «антидрыщ». Счет оставшихся отжиманий/приседаний вел в твиттере, чтоб все видели. Ну и на сайт прилепил виджет, куда из твиттера (twitter) транслировалось все это дело.

Чем все закончилось, расскажу чуть позже. Суть поста в другом. К слову, в этом году я снова повторяю былую глупость. Только теперь поставил планку на 45000. Но это уже совсем другая история.

Виджет Твиттера

Итак, Твиттер предоставляет возможность быстро состряпать виджет для сайта. Заходишь, выбираешь что надо и полученный код вставляешь на сайт. Ничего сложного, но есть одно «НО» (или NO?) которое все портит.

Дело в том, что в виджете можно либо сделать ленту твитов конкретного пользователя, либо размесить ленту результата поиска по хештэгу. А мне нужно было, чтобы в ленте были ТОЛЬКО мои твиты, и ТОЛЬКО с хештегом #антидрыщ.

Увы, но одновременно и то и это твиттер не давал. В результате я остановился исключительно на хештэге и несколько раз на моем сайте появлялись чужие твиты с тем же хештэгом.

В этом году я решил, что хватит это терпеть! Программист я или хвост собачий??

Вот такой получился код. Читайте комментарии в нем и все будет понятно. А чтобы все работало, нужно закачать на сайт библиотеку PHPQuery (ищем в яндексе-гугле).

Мой код

//Задаем имя файла кеша и путь к нему
$filename = 'drish.html';
//Инициализируем переменную с твитом
$hentry = '';

//Проверяем на месте ли файл кеша (первый раз нужно создать вручную)
if(file_exists($filename)){
	//Задаем время жизни кеша в секундах
	if(time() > (filectime($filename) + 300)){
		//Если кеш устарел, подключаем библиотеку phpQuery (качаем отдельно)
		require('phpQuery/phpQuery.php');
		//Заходим в ленту твиттера и загружаем страницу в переменную
		$file = file_get_contents('https://twitter.com/search?f=tweets&vertical=default&q=%23%D0%B0%D0%BD%D1%82%D0%B8%D0%B4%D1%80%D1%8B%D1%8945%D1%82%D1%8B%D1%89%20from%3AdrLexium&src=typd');
		$doc = phpQuery::newDocument($file);
		//Выбираем нужное место на странице и выдергиваем твит и пишем его в $hentry
		$hentry = strip_tags($doc->find('div.content p.tweet-text:first'));
		//Даписываем твит в файл кеша
		file_put_contents($filename, $hentry);
	}else{
		Читаем содержимое кеша в $hentry
		$hentry = file_get_contents($filename);
	}
	
	//Выводим содержимое $hentry в параграф с id antidrish
	echo '<p class="antidrish">' . $hentry . '</p>';

 

Прелесть этого кода в том, что:

  1. Он парсит сайт твиттера, а значит не нужно использовать API и не нужно авторизовываться.
  2. Данные кешируются, а значит не будет большого количества обращений к Твиттеру.
  3. Можно отслеживать твиты любого пользователя Twitter и только по указанному вами хештэгу.
  4. Показывается только последний твит с хештэгом, а не вся куча.
  5. Не выводит лишней ерунды (типа ника, аватарки, ссылок на твиттер и прочей ерунды).
  6. Стили для текста твита вы вольны переделать как вам удобно. Если конечно умеете пользоваться CSS.
  7. На один сайт можно поставить несколько таких следилок. Т.е. с одной учетки Twitter, благодаря правильным хештэгам, вы можете публиковать «новость дня» на один сайт, и свежий анекдот на другой. Главное, чтобы поддерживался PHP.
Владельцам статичных лендингов на заметку. Такой код можно будет вставить на свой лендинг для свежих маленьких постов, срочных новостей и прочих плюшек.

Я еще навертел возможность изменять код прямо под себя не уходя с сайта. Так что можете поиграться с выбором пользователя и хештэга.

Ну а кому помогло, не стесняемся говорить спасибо и данатить на чай.

Вы же знаете как я люблю печеньки с хорошим чаем) Ммммм….)))

Чем закончился предыдущий антидрыщ?

Ах да. Чуть не забыл. В тот год я, как и всегда в таких случаях, развил бурную деятельность. Недели на две. А потом просто забыл про это пари с самим собой.

Вспомнил летом. Вспомнил и ужаснулся. Очень уж стало жалко денег и репутации.

Сюрпризом стало то, что за моими успехами следили читатели. Обнаружив столь выразительную паузу в выполнении взятых обязательств, они напомнили. Так что тихо съехать был по-любому не вариант.

Пришлось наступить себе на горло, на прочие места, и приседать, приседать, приседать. До боли… Я чуть не проклял день, когда задумал этого антидрыща.

Но знаете… мне удалось. Я сделал эти 40000 раз примерно за неделю до конца декабря.

И вот что скажу: после этого я чувствовал небывалый прилив сил и выносливости.

Но тяготы и лишения запомнились сильнее. Так что на следующий год, антидрыщ не повторил. Не повторил и потом. Домен продлевать не стал. Сайт удалил.

И вот, настал 2018-й. Плохое забылось, история повторяется. Теперь я хвалю себя лишь за то, что не впаял в эту авантюру 80000 приседаний. Вот это был бы номер… Сейчас я это ну очень хорошо понимаю. Примерно два раза в день…

А с вами был Доктор Лексиум.
До новых постов и заходите на блог снова.

Напишите комментарий