Отфильтровать @ответы в твиттере? - PullRequest
5 голосов
/ 06 марта 2009

У меня есть фид из моего профиля в Твиттере в верхней части моего сайта, но мне было интересно, есть ли способ отфильтровать мои @ ответы и показать только обновления моего статуса?

Спасибо

Ответы [ 6 ]

6 голосов
/ 06 марта 2009
4 голосов
/ 03 июня 2009

Если вы используете стандартный веб-код канала Twitter для Blogger и подобных сайтов, этот кусочек Javascript поможет. Он находится между фидом Twitter и обратным вызовом и удаляет ответы из ответа сервера.

Для значка блога стандартный веб-код Twitter заканчивается двумя <script> тегами. Первый обеспечивает функцию, которая отображает ваши твиты. Второй запрашивает твиттер для отображения твитов.

Добавьте этот скрипт в свой код значка перед запросом в твиттере. Он предоставляет новую функцию filterCallback, которая удаляет @replies из ответа Twitter.

<script type="text/javascript">
  function filterCallback( twitter_json ) {
    var result = [];
    for(var index in twitter_json) {
      if(twitter_json[index].in_reply_to_user_id == null) {
        result[result.length] = twitter_json[index];
      }
      if( result.length==5 ) break; // Edit this to change the maximum tweets shown
    }
    twitterCallback2(result); // Pass tweets onto the original callback. Don't change it!
  }
  </script>

Сам запрос на твиттер имеет параметр, который указывает, какую функцию вызывать при возврате ответа. В случае блоггера эта функция называется twitterCallback2 - вы можете искать ее в веб-коде (ищите callback=twitterCallback2). Чтобы использовать новый фильтр, вам нужно заменить текст twittercallback2 на filterCallback. Фильтр жестко запрограммирован, чтобы затем вызвать twitterCallback2, когда это будет сделано.

Обратите внимание, что, поскольку это уменьшит количество отображаемых твитов, если некоторые из ответов от Twitter являются ответами, вам необходимо увеличить параметр count в вызове, чтобы учесть это. Затем новая функция ограничивает количество отображаемых ответов пятью - отредактируйте код, чтобы изменить это.

Вот мой пост в блоге об этом: Фильтр ответов из ленты Twitter

3 голосов
/ 15 января 2010

Если вы хотите использовать новые виджеты Twitter, просто добавьте этот фрагмент кода в настройку features: исходного кода виджета:

filters: {
  negatives: /\B@\w{1,20}(\s+|$)/
},

Я взял это с веб-сайта Дастина Диаса по адресу http://www.dustindiaz.com. Дастин Диаз - создатель виджета Twitter.

1 голос
/ 07 февраля 2012

Измените вызов setUser на

setUser('name&exclude_replies=true');

Это что-то вроде хака, но оно делает трюк

0 голосов
/ 06 марта 2009

Возможно, вы захотите использовать регулярное выражение. Что-то вроде:

[a-zA-Z0-9][a-zA-Z0-9]*: @[a-zA-Z0-9][a-zA-Z0-9]*.*

В зависимости от того, как вы форматируете свой канал Twitter на своей странице. Это регулярное выражение предполагает, что вы отформатировали что-то вроде:

username: @username msg txt

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

0 голосов
/ 06 марта 2009

Зависит от того, что вы используете для отображения записей. Если вы используете виджет Twitter, то, вероятно, нет. Если вы используете какой-то другой программный способ отображения элементов, вам необходимо предоставить более подробную информацию о том, что вы делаете (язык, пример кода и т. Д.), И мы, вероятно, можем помочь с фильтрацией.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...