nodeswork-helloworld
Version:
Hello world application of Nodeswork.
79 lines (77 loc) • 2.74 kB
JavaScript
;
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
return c > 3 && r && Object.defineProperty(target, key, r), r;
};
var __metadata = (this && this.__metadata) || function (k, v) {
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
};
Object.defineProperty(exports, "__esModule", { value: true });
const kiws = require("@nodeswork/kiws");
const applet = require("@nodeswork/applet");
const logger = require("@nodeswork/logger");
const htmlToText = require("html-to-text");
const randomQuote = require('random-quote');
const LOG = logger.getLogger();
let QuoteWorker = class QuoteWorker {
async quote() {
const result = {
status: 'ok',
};
const quote = (await randomQuote())[0];
const textContent = htmlToText.fromString(quote.content);
result.quote = quote;
result.textContent = textContent;
if (this.twitter == null) {
result.status = 'No twitter account';
}
else {
try {
result.tweetRespose = await this.twitter.tweet({
status: textContent,
});
}
catch (e) {
result.status = 'tweet failed';
result.err = JSON.parse(JSON.stringify(e));
}
}
LOG.info('quote is executed', result);
return result;
}
};
__decorate([
kiws.Input(),
__metadata("design:type", applet.TwitterAccount)
], QuoteWorker.prototype, "twitter", void 0);
__decorate([
applet.Worker({
name: 'Quote',
schedule: '0 0 8 * * *',
default: true,
}),
__metadata("design:type", Function),
__metadata("design:paramtypes", []),
__metadata("design:returntype", Promise)
], QuoteWorker.prototype, "quote", null);
QuoteWorker = __decorate([
applet.WorkerProvider({})
], QuoteWorker);
let QuoteModule = class QuoteModule {
constructor() { }
};
QuoteModule = __decorate([
applet.Module({
workers: [
QuoteWorker,
],
providers: [
applet.TwitterAccount,
],
}),
__metadata("design:paramtypes", [])
], QuoteModule);
applet.bootstrap(QuoteModule);
//# sourceMappingURL=index.js.map