0
내 트위터 봇에 버그를 수정하려고합니다. 기본적으로 폴더의 모든 파일 이름을 가진 배열이 있는데, 임의로 하나를 선택하여 게시하지만 가끔씩 게시합니다. 동일한 이미지를 다시 게시합니다. 어떻게 해결할 수 있습니까?랜덤 파일을 선택하고 node.js와 함께 이동
fs.js:640
return binding.open(pathModule._makeLong(path), stringToFlags(flags), mode);
^
Error: ENOENT: no such file or directory, open 'D:\memesbot\memestorage\queue\645 (2).jpg'
at Error (native)
at Object.fs.openSync (fs.js:640:18)
at Object.fs.readFileSync (fs.js:508:33)
at Timeout.upload_random_image [as _onTimeout] (D:\memesbot\memes.js:29:23)
at ontimeout (timers.js:365:14)
at tryOnTimeout (timers.js:237:5)
at Timer.listOnTimeout (timers.js:207:5)
: 여기
이 오류 메시지가 가끔 또 다시
...
var filename = (random_file());
var pfile = ("posted"+random_file());
var imgPATH = path.join(__dirname, '/memestorage/queue/' + filename);
var postedFile = path.join(__dirname, '/memestorage/posted/' + pfile);
fs.rename(imgPATH, postedFile, function(err) {
if (err) console.log('ERROR: ' + err);
});
//image selection and upload
function upload_random_image(){
console.log('Opening file...');
var image_path = imgPATH,
b64content = fs.readFileSync(imgPATH, { encoding: 'base64' });
...
그러나 게시물 같은 이미지 이상과 함께 시도, 또는 한 코드
var fs = require('fs'),
path = require('path'),
Twit = require('twit'),
set = require(path.join(__dirname, 'set.js'));
//array of files
files_memes = require(path.join(__dirname, 'files.js'))
var currentdate = new Date();
var upl = "Subido: "
+ currentdate.getHours() + ":"
+ currentdate.getMinutes()+ " hs.";
var setMin = 10;
var T = new Twit(set);
function random_file(){
var allFiles = (files_memes)//array
return allFiles[Math.floor(Math.random() * allFiles.length)];
}
var filename = (random_file());
var imgPATH = path.join(__dirname, '/memestorage/queue/' + filename);
//image selection and upload
function upload_random_image(){
console.log('Opening file...');
var image_path = imgPATH,
b64content = fs.readFileSync(image_path, { encoding: 'base64' });
console.log('Uploading file...');
T.post('media/upload', { media_data: b64content }, function (err, data, response) {
if (err){
console.log('ERROR');
console.log(err);
}
else{
console.log('File loaded!');
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('Tweeted!');
console.log(upl);
console.log('Next tweet in ' + setMin + ' min.');
}
}
);
}
});
}
//timer
setTimeout(
upload_random_image,
0
);
setInterval(
upload_random_image,
1000*10
);
준다
누군가가 나를 도울 수 있기를 바랍니다, 감사합니다.
아차 내부 행 아래
이동! 그걸 알아 채지 못 했어! 이제 완벽하게 작동합니다. –