【发布时间】:2020-03-14 11:35:48
【问题描述】:
我正在使用一个名为 Twit 的 NPM 包制作一个 Twitter 机器人,我想知道如何在不发布重复图像的情况下将图像发布到 Twitter。
目前是 image_path 变量
var image_path = path.join(__dirname, '/images/' + random_from_array(images))
正在查看我的图像目录,但我不希望它上传重复的图像。我尝试了多种方法,但被卡住了。任何建议,我都很难过。
var fs = require('fs'),
path = require('path'),
Twit = require('twit'),
config = require(path.join(__dirname, 'config.js'));
var T = new Twit(config);
function random_from_array(images){
return images[Math.floor(Math.random() * images.length)];
}
function upload_random_image(images){
console.log('Opening an image...');
var image_path = path.join(__dirname, '/images/' + random_from_array(images)),
b64content = fs.readFileSync(image_path, { encoding: 'base64' });
console.log('Uploading an image...');
T.post('media/upload', { media_data: b64content }, function (err, data, response) {
if (err){
console.log('ERROR:');
console.log(err);
}
else{
console.log('Image uploaded!');
console.log('Now tweeting it...');
T.post('statuses/update', {
media_ids: new Array(data.media_id_string)
},
function(err, data, response) {
if (err){
console.log('ERROR:');
console.log(err);
}
else{
console.log('Posted an image!');
}
}
);
}
});
}
fs.readdir(__dirname + '/images', function(err, files) {
if (err){
console.log(err);
}
else{
var images = [];
files.forEach(function(f) {
images.push(f);
});
setInterval(function(){
upload_random_image(images);
}, 10000);
}
});
我正在学习本教程
https://botwiki.org/resource/tutorial/random-image-tweet/#posting-images
【问题讨论】:
标签: javascript node.js npm twitter bots