mirror of
https://github.com/GenderDysphoria/GenderDysphoria.fyi.git
synced 2025-01-31 07:16:17 +00:00
Move parseTweetId into page-tweets
This commit is contained in:
parent
de4dfd765d
commit
0b96c071fc
@ -107,3 +107,32 @@ function getTwitterClient (config) {
|
|||||||
.get('statuses/lookup', { id: tweetids.join(','), tweet_mode: 'extended' })
|
.get('statuses/lookup', { id: tweetids.join(','), tweet_mode: 'extended' })
|
||||||
.catch((e) => { log.error(e); return []; });
|
.catch((e) => { log.error(e); return []; });
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const tweeturl = /https?:\/\/twitter\.com\/(?:#!\/)?(?:\w+)\/status(?:es)?\/(\d+)/i;
|
||||||
|
const tweetidcheck = /^\d+$/;
|
||||||
|
function parseTweetId (tweetid) {
|
||||||
|
// we can't trust an id that isn't a string
|
||||||
|
if (typeof tweetid !== 'string') return false;
|
||||||
|
|
||||||
|
const match = tweetid.match(tweeturl);
|
||||||
|
if (match) return match[1];
|
||||||
|
if (tweetid.match(tweetidcheck)) return tweetid;
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
exports.parseTweetId = parseTweetId;
|
||||||
|
|
||||||
|
exports.attachTweets = function (tweetids, tweets) {
|
||||||
|
function attachTweet (dict, tweetid) {
|
||||||
|
const tweet = tweets[tweetid];
|
||||||
|
if (!tweet) return;
|
||||||
|
dict[tweetid] = tweet;
|
||||||
|
|
||||||
|
if (tweet.quoted_status_id_str) attachTweet(dict, tweet.quoted_status_id_str);
|
||||||
|
}
|
||||||
|
|
||||||
|
return tweetids.reduce((dict, tweetid) => {
|
||||||
|
attachTweet(dict, tweetid);
|
||||||
|
return dict;
|
||||||
|
}, {});
|
||||||
|
};
|
||||||
|
@ -8,6 +8,7 @@ const actions = require('./actions');
|
|||||||
const { URL } = require('url');
|
const { URL } = require('url');
|
||||||
const { resolve, readFile, isCleanUrl, TYPE, ENGINE } = require('./resolve');
|
const { resolve, readFile, isCleanUrl, TYPE, ENGINE } = require('./resolve');
|
||||||
const { isObject, isString } = require('./lib/util');
|
const { isObject, isString } = require('./lib/util');
|
||||||
|
const { parseTweetId } = require('./page-tweets');
|
||||||
|
|
||||||
const pkg = require(resolve('package.json'));
|
const pkg = require(resolve('package.json'));
|
||||||
const frontmatter = require('front-matter');
|
const frontmatter = require('front-matter');
|
||||||
@ -131,17 +132,3 @@ module.exports = exports = class Page extends File {
|
|||||||
}
|
}
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
/* Utility Functions **************************************************/
|
|
||||||
|
|
||||||
const tweeturl = /https?:\/\/twitter\.com\/(?:#!\/)?(?:\w+)\/status(?:es)?\/(\d+)/i;
|
|
||||||
const tweetidcheck = /^\d+$/;
|
|
||||||
function parseTweetId (tweetid) {
|
|
||||||
// we can't trust an id that isn't a string
|
|
||||||
if (typeof tweetid !== 'string') return false;
|
|
||||||
|
|
||||||
const match = tweetid.match(tweeturl);
|
|
||||||
if (match) return match[1];
|
|
||||||
if (tweetid.match(tweetidcheck)) return tweetid;
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user