|
@@ -138,37 +138,50 @@ class Webshot extends CallableInstance {
|
|
});
|
|
});
|
|
})
|
|
})
|
|
|
|
|
|
- public webshot(tweets, callback, webshotDelay: number): Promise<void> {
|
|
+ public webshot(mode, tweets, callback, webshotDelay: number): Promise<void> {
|
|
let promise = new Promise<void>(resolve => {
|
|
let promise = new Promise<void>(resolve => {
|
|
resolve();
|
|
resolve();
|
|
});
|
|
});
|
|
tweets.forEach(twi => {
|
|
tweets.forEach(twi => {
|
|
let cqstr = '';
|
|
let cqstr = '';
|
|
- const url = `https://mobile.twitter.com/${twi.user.screen_name}/status/${twi.id_str}`;
|
|
+ if (mode === 0) {
|
|
- promise = promise.then(() => this.renderWebshot(url, 1920, webshotDelay))
|
|
+ const url = `https://mobile.twitter.com/${twi.user.screen_name}/status/${twi.id_str}`;
|
|
- .then(base64Webshot => {
|
|
+ promise = promise.then(() => this.renderWebshot(url, 1920, webshotDelay))
|
|
- if (base64Webshot) cqstr += `[CQ:image,file=base64://${base64Webshot}]`;
|
|
+ .then(base64Webshot => {
|
|
- });
|
|
+ if (base64Webshot) cqstr += `[CQ:image,file=base64://${base64Webshot}]`;
|
|
- if (twi.extended_entities) {
|
|
+ });
|
|
- twi.extended_entities.media.forEach(media => {
|
|
+ if (twi.extended_entities) {
|
|
- promise = promise.then(() => this.fetchImage(media.media_url_https))
|
|
+ twi.extended_entities.media.forEach(media => {
|
|
- .then(base64Image => {
|
|
+ promise = promise.then(() => this.fetchImage(media.media_url_https))
|
|
- if (base64Image) cqstr += `[CQ:image,file=base64://${base64Image}]`;
|
|
+ .then(base64Image => {
|
|
- });
|
|
+ if (base64Image) cqstr += `[CQ:image,file=base64://${base64Image}]`;
|
|
- });
|
|
+ });
|
|
- }
|
|
+ });
|
|
- if (twi.entities && twi.entities.urls && twi.entities.urls.length) {
|
|
+ }
|
|
- promise = promise.then(() => {
|
|
+ if (twi.entities && twi.entities.urls && twi.entities.urls.length) {
|
|
- const urls = twi.entities.urls
|
|
+ promise = promise.then(() => {
|
|
- .filter(urlObj => urlObj.indices[0] < twi.display_text_range[1])
|
|
+ const urls = twi.entities.urls
|
|
- .map(urlObj => urlObj.expanded_url);
|
|
+ .filter(urlObj => urlObj.indices[0] < twi.display_text_range[1])
|
|
- if (urls.length) {
|
|
+ .map(urlObj => urlObj.expanded_url);
|
|
- cqstr += '\n';
|
|
+ if (urls.length) {
|
|
- cqstr += urls.join('\n');
|
|
+ cqstr += '\n';
|
|
- }
|
|
+ cqstr += urls.join('\n');
|
|
- });
|
|
+ }
|
|
|
|
+ });
|
|
|
|
+ }
|
|
}
|
|
}
|
|
- promise.then(() => callback(cqstr, (twi.retweeted_status || twi).full_text));
|
|
+ promise.then(() => {
|
|
|
|
+ let text = (twi.retweeted_status || twi).full_text;
|
|
|
|
+ if (twi.entities && twi.entities.urls && twi.entities.urls.length) {
|
|
|
|
+ twi.entities.urls.forEach(url => {
|
|
|
|
+ text = text.replace(new RegExp(url.url, 'gm'), url.expanded_url);
|
|
|
|
+ });
|
|
|
|
+ }
|
|
|
|
+ text = text.replace(/&/gm, '&')
|
|
|
|
+ .replace(/\[/gm, '[')
|
|
|
|
+ .replace(/\]/gm, ']');
|
|
|
|
+ callback(cqstr, text);
|
|
|
|
+ });
|
|
});
|
|
});
|
|
return promise;
|
|
return promise;
|
|
}
|
|
}
|