Четверг, 04 января 2018 07:00

Rails development: инструменты для работы с Twitter. Парсинг твитов

Оцените материал
(0 голосов)

Программа умного массфолловинга Твидиум (в этом блоге осталось немало постов о ней) Леонида Кофмана закрылась год назад. Волей-неволей ищу достойную альтернативу софтине, а ее нет... приходится признать, что прога Леонида была, вероятно, лучшей в своем роде.

Замену найти непросто, поэтому пишу сам... на php неохота, кодю на ruby on rails, какие-то рабочие моменты уже тестирую, кому интересно, попробуйте, это без ЛК и возможности записи ключей в db демки выполнены, на аяксе и бутстрапе:

 

К сожалению, нет возможности в настоящий момент показать демо.

 

Хотя практически готов уже и личный кабинет пользователя. Помимо постинга и парсинга твитов предусмотрены и находятся в разработке инструменты анфолловинга, фолловинга и ответного фолловинга... вот с этими последними как раз и бооольшой вопрос. Технически все несложно (хотя дьявол и коренится, как известно, в деталях), но вот интересно, гхм, как отнесется к такого рода попыткам его величество Twitter? Помнится, мои эксперименты с Твидиумом второй половины 2016 года уже не внушали оптимизма: Twitter тогда позволял проге фолловить акков пятьдесят в день (вместо прежних двухсот, насколько помню), малейшее превышение лимита моментально приводило к блокировке аккаунта, и ни прокси, ни имитация пользовательских действий (Твидиум предусматривал такую опцию) уже не спасали. Не уверен, что с этим что-то изменилось на сегодняшний день, разве что в сторону ужесточения реакции на попытки автоматизировать работу пользователя в Твиттере.

 

Dev banner 3

 

И еще более не уверен, что тот или иной "Твидиум-web-2.0" способен сегодня принести хоть какой-то коммерческий успех, особенно если вспомнить крах первого. Как думаете, нужны ли кому-то сегодня инструменты для работы с Твиттером, если эти инструменты не включают в себя хоть мало-мальски действенного массфолловинга? - 50 инвайтов в сутки, это же курам насмех. Как вы оцениваете возможную роль Твиттера в сфере SMM в России, актуально ли это направление сегодня? - на эти и другие вопросы у меня пока что нет ответа. Посмотрим... вероятно, это была последняя демка, работающая с API Twitter, в моем блоге на Ruby on Rails по ссылке выше; на очереди публичное beta-тестирование полноценного сервиса, цель которого - предоставить пользователю комфортный инструментарий для работы с Twitter.

А пока что, как уже стало привычным для читателей блога - программный код демки парсера твитов, работающей на основе gem 'twitter'. Приложение удаляет из ленты многочисленные дубли твитов, ретвиты преобразует в твиты, etc. Принцип работы способен быть примерно таким:

logics

class TweetParserController < ApplicationController
	def index
		client = Twitter::REST::Client.new do |config| 
			config.consumer_key = ENV['TWI_KEY']
			config.consumer_secret = ENV['TWI_SECRET']
			config.access_token = ENV['TWI_TOKEN']
			config.access_token_secret = ENV['TWI_TOKEN_SECRET']
		end
		if verify_recaptcha
			@arr = []
			client.search("@#{params[:twitter_acc]}", result_type: "recent").take(params[:number_of_tweets].to_i).collect do |tweet|
				@arr << tweet.text.gsub("@#{params[:twitter_acc]}", "").gsub("RT :", "").gsub("RT", "")
			end
			flash.now[:success] = 'Success'
		else
			if params[:twitter_acc].present?
				redirect_to tweet_parser_index_path
				flash.now[:error] = 'Error'
			end
		end
	end
end

index.html.erb

<form action='/tweet_parser' method='get'>
<div class="input-group">
    <span class="input-group-addon" title="How many tweets?">How many tweets?</span>
    <%= select_tag "number_of_tweets", options_for_select([ '10', '20', '30'], '30'), { class: "form form-group form-control" } %>
    <span class="input-group-addon" title="Twitter">Twitter</span>
    <%= select_tag "twitter_acc", options_for_select(['SkyNews', 'BBCNews', 'BBCWorld'], 'SkyNews'), { class: "form form-group form-control" } %>
</div>
<%= recaptcha_tags %>
<input type="submit" class="btn btn-default" value = "Get" />
</form>
<% if @arr.present? %>
<% @arr.uniq.each do |line| %>
<%= line %><br>
<% end %>
<div class="btn btn-default">
<%= link_to "Back", tweet_parser_path, {:style=>'text-decoration:none; color:#3c658a;'} %>
</div>
<% end %>

Последнее изменениеВторник, 07 декабря 2021 22:06

Оставить комментарий

Добавьте ваш комментарий

Заказать сайт

Веб-разработка. Заказать сайт

Вы можете заказать сайт-визитку, блог, корпоративный сайт, интернет-магазин или коммерческий web-портал.