Поиск по #HashTag с использованием Twitter API с Node.js - PullRequest
0 голосов
/ 16 февраля 2019

Я пишу приложение Node.js, которое удалит мои твиты через 24 часа.Я хочу добавить параметр, позволяющий мне удалять только твиты с хэштегом "#SnappyTweet".

function snappyTweet () {

    client.get('statuses/user_timeline', {trim_user: true, count: 20}, function(error, tweets, response){
      if(error) throw error;

      var i = 0;
      var len = tweets.length;

      for (i; i < len; i++) {

          var id = tweets[i].id_str;
          var favd = tweets[i].favorited;

          var hashtag = // I want to a add var here for hash tags

          var tweetDate = new 
Date(Date.parse(tweets[i].created_at.replace(/( \+)/, ' UTC$1')));

          var expiryDate = moment(tweetDate).add(2, 'minutes')._d;
          var now = moment();


          // And instead of favoited I want to check for the hashtag.

          if (moment(now).isAfter(expiryDate) && moment(tweetDate).isAfter('2018-01-01') && favd === false) {
              deleteTweet(id);
          }

1 Ответ

0 голосов
/ 16 февраля 2019

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

Пример:

let hashtag = "#SnappyTweet"; // hashtag to match

function hashMatch(tweet) {
  let matches = [];
  let pattern = /(^|\s)(#[a-z\d-]+)/ig; // this matches strings starting with a #

  while ((match = pattern.exec(tweet))) {
    matches.push(match[0].replace(/^\s+|\s+$/g, ""));
  }
  return (matches.includes(hashtag));
}

let tweet1 = 'test tweet 123 #SnappyTweet';
let tweet2 = 'test tweet 123 #NoMatchHere blah blah';

console.log(hashMatch(tweet1)); // first tweet is a match, so you can delete it
console.log(hashMatch(tweet2)); // second tweet isn't a match

Таким образом, чтобы реализовать это в своем коде, вы можете изменить выражение if на что-то вроде:

if (moment(now).isAfter(expiryDate) && moment(tweetDate).isAfter('2018-01-01') && hashMatch(tweet[i].text)) {
    deleteTweet(id);
}

Где tweet[i].text - этотекстовая строка твита.Я не очень знаком с API, но я предполагаю, что, вероятно, есть свойство или метод для получения текстовой строки (например, tweet[i].text или что-то подобное).

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