fixed after refactor
This commit is contained in:
parent
2dde207707
commit
6914d2473c
|
@ -14,6 +14,7 @@
|
|||
"node-cron": "^3.0.2",
|
||||
"pino": "^8.15.0",
|
||||
"pino-http": "^8.4.0",
|
||||
"pino-pretty": "^10.2.0",
|
||||
"promised-sqlite3": "^2.1.0",
|
||||
"undici": "^5.23.0"
|
||||
},
|
||||
|
@ -413,8 +414,7 @@
|
|||
"node_modules/colorette": {
|
||||
"version": "2.0.19",
|
||||
"resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.19.tgz",
|
||||
"integrity": "sha512-3tlv/dIP7FWvj3BsbHrGLJ6l/oKh1O3TcgBqMn+yyCagOxc23fyzDS6HypQbgxWbkpDnf52p1LuR4eWDQ/K9WQ==",
|
||||
"dev": true
|
||||
"integrity": "sha512-3tlv/dIP7FWvj3BsbHrGLJ6l/oKh1O3TcgBqMn+yyCagOxc23fyzDS6HypQbgxWbkpDnf52p1LuR4eWDQ/K9WQ=="
|
||||
},
|
||||
"node_modules/commander": {
|
||||
"version": "10.0.1",
|
||||
|
@ -467,6 +467,14 @@
|
|||
"resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz",
|
||||
"integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ=="
|
||||
},
|
||||
"node_modules/dateformat": {
|
||||
"version": "4.6.3",
|
||||
"resolved": "https://registry.npmjs.org/dateformat/-/dateformat-4.6.3.tgz",
|
||||
"integrity": "sha512-2P0p0pFGzHS5EMnhdxQi7aJN+iMheud0UhG4dlE1DLAlvL8JHjJJTX/CSm4JXwV0Ka5nGk3zC5mcb5bUQUxxMA==",
|
||||
"engines": {
|
||||
"node": "*"
|
||||
}
|
||||
},
|
||||
"node_modules/debug": {
|
||||
"version": "2.6.9",
|
||||
"resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
|
||||
|
@ -532,6 +540,14 @@
|
|||
"iconv-lite": "^0.6.2"
|
||||
}
|
||||
},
|
||||
"node_modules/end-of-stream": {
|
||||
"version": "1.4.4",
|
||||
"resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz",
|
||||
"integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==",
|
||||
"dependencies": {
|
||||
"once": "^1.4.0"
|
||||
}
|
||||
},
|
||||
"node_modules/env-paths": {
|
||||
"version": "2.2.1",
|
||||
"resolved": "https://registry.npmjs.org/env-paths/-/env-paths-2.2.1.tgz",
|
||||
|
@ -683,6 +699,11 @@
|
|||
"node": ">= 0.8"
|
||||
}
|
||||
},
|
||||
"node_modules/fast-copy": {
|
||||
"version": "3.0.1",
|
||||
"resolved": "https://registry.npmjs.org/fast-copy/-/fast-copy-3.0.1.tgz",
|
||||
"integrity": "sha512-Knr7NOtK3HWRYGtHoJrjkaWepqT8thIVGAwt0p0aUs1zqkAzXZV4vo9fFNwyb5fcqK1GKYFYxldQdIDVKhUAfA=="
|
||||
},
|
||||
"node_modules/fast-redact": {
|
||||
"version": "3.3.0",
|
||||
"resolved": "https://registry.npmjs.org/fast-redact/-/fast-redact-3.3.0.tgz",
|
||||
|
@ -691,6 +712,11 @@
|
|||
"node": ">=6"
|
||||
}
|
||||
},
|
||||
"node_modules/fast-safe-stringify": {
|
||||
"version": "2.1.1",
|
||||
"resolved": "https://registry.npmjs.org/fast-safe-stringify/-/fast-safe-stringify-2.1.1.tgz",
|
||||
"integrity": "sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA=="
|
||||
},
|
||||
"node_modules/finalhandler": {
|
||||
"version": "1.2.0",
|
||||
"resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.2.0.tgz",
|
||||
|
@ -864,6 +890,52 @@
|
|||
"resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz",
|
||||
"integrity": "sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ=="
|
||||
},
|
||||
"node_modules/help-me": {
|
||||
"version": "4.2.0",
|
||||
"resolved": "https://registry.npmjs.org/help-me/-/help-me-4.2.0.tgz",
|
||||
"integrity": "sha512-TAOnTB8Tz5Dw8penUuzHVrKNKlCIbwwbHnXraNJxPwf8LRtE2HlM84RYuezMFcwOJmoYOCWVDyJ8TQGxn9PgxA==",
|
||||
"dependencies": {
|
||||
"glob": "^8.0.0",
|
||||
"readable-stream": "^3.6.0"
|
||||
}
|
||||
},
|
||||
"node_modules/help-me/node_modules/brace-expansion": {
|
||||
"version": "2.0.1",
|
||||
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz",
|
||||
"integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==",
|
||||
"dependencies": {
|
||||
"balanced-match": "^1.0.0"
|
||||
}
|
||||
},
|
||||
"node_modules/help-me/node_modules/glob": {
|
||||
"version": "8.1.0",
|
||||
"resolved": "https://registry.npmjs.org/glob/-/glob-8.1.0.tgz",
|
||||
"integrity": "sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==",
|
||||
"dependencies": {
|
||||
"fs.realpath": "^1.0.0",
|
||||
"inflight": "^1.0.4",
|
||||
"inherits": "2",
|
||||
"minimatch": "^5.0.1",
|
||||
"once": "^1.3.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=12"
|
||||
},
|
||||
"funding": {
|
||||
"url": "https://github.com/sponsors/isaacs"
|
||||
}
|
||||
},
|
||||
"node_modules/help-me/node_modules/minimatch": {
|
||||
"version": "5.1.6",
|
||||
"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz",
|
||||
"integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==",
|
||||
"dependencies": {
|
||||
"brace-expansion": "^2.0.1"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=10"
|
||||
}
|
||||
},
|
||||
"node_modules/http-cache-semantics": {
|
||||
"version": "4.1.1",
|
||||
"resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz",
|
||||
|
@ -1088,6 +1160,14 @@
|
|||
"integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==",
|
||||
"optional": true
|
||||
},
|
||||
"node_modules/joycon": {
|
||||
"version": "3.1.1",
|
||||
"resolved": "https://registry.npmjs.org/joycon/-/joycon-3.1.1.tgz",
|
||||
"integrity": "sha512-34wB/Y7MW7bzjKRjUKTa46I2Z7eV62Rkhva+KkopW7Qvv/OSWBqvkSY7vusOPrNuZcUG3tApvdVgNB8POj3SPw==",
|
||||
"engines": {
|
||||
"node": ">=10"
|
||||
}
|
||||
},
|
||||
"node_modules/knex": {
|
||||
"version": "2.5.1",
|
||||
"resolved": "https://registry.npmjs.org/knex/-/knex-2.5.1.tgz",
|
||||
|
@ -1290,6 +1370,14 @@
|
|||
"node": "*"
|
||||
}
|
||||
},
|
||||
"node_modules/minimist": {
|
||||
"version": "1.2.8",
|
||||
"resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz",
|
||||
"integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==",
|
||||
"funding": {
|
||||
"url": "https://github.com/sponsors/ljharb"
|
||||
}
|
||||
},
|
||||
"node_modules/minipass": {
|
||||
"version": "3.3.6",
|
||||
"resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz",
|
||||
|
@ -1683,6 +1771,45 @@
|
|||
"process-warning": "^2.0.0"
|
||||
}
|
||||
},
|
||||
"node_modules/pino-pretty": {
|
||||
"version": "10.2.0",
|
||||
"resolved": "https://registry.npmjs.org/pino-pretty/-/pino-pretty-10.2.0.tgz",
|
||||
"integrity": "sha512-tRvpyEmGtc2D+Lr3FulIZ+R1baggQ4S3xD2Ar93KixFEDx6SEAUP3W5aYuEw1C73d6ROrNcB2IXLteW8itlwhA==",
|
||||
"dependencies": {
|
||||
"colorette": "^2.0.7",
|
||||
"dateformat": "^4.6.3",
|
||||
"fast-copy": "^3.0.0",
|
||||
"fast-safe-stringify": "^2.1.1",
|
||||
"help-me": "^4.0.1",
|
||||
"joycon": "^3.1.1",
|
||||
"minimist": "^1.2.6",
|
||||
"on-exit-leak-free": "^2.1.0",
|
||||
"pino-abstract-transport": "^1.0.0",
|
||||
"pump": "^3.0.0",
|
||||
"readable-stream": "^4.0.0",
|
||||
"secure-json-parse": "^2.4.0",
|
||||
"sonic-boom": "^3.0.0",
|
||||
"strip-json-comments": "^3.1.1"
|
||||
},
|
||||
"bin": {
|
||||
"pino-pretty": "bin.js"
|
||||
}
|
||||
},
|
||||
"node_modules/pino-pretty/node_modules/readable-stream": {
|
||||
"version": "4.4.2",
|
||||
"resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-4.4.2.tgz",
|
||||
"integrity": "sha512-Lk/fICSyIhodxy1IDK2HazkeGjSmezAWX2egdtJnYhtzKEsBPJowlI6F6LPb5tqIQILrMbx22S5o3GuJavPusA==",
|
||||
"dependencies": {
|
||||
"abort-controller": "^3.0.0",
|
||||
"buffer": "^6.0.3",
|
||||
"events": "^3.3.0",
|
||||
"process": "^0.11.10",
|
||||
"string_decoder": "^1.3.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": "^12.22.0 || ^14.17.0 || >=16.0.0"
|
||||
}
|
||||
},
|
||||
"node_modules/pino-std-serializers": {
|
||||
"version": "6.2.2",
|
||||
"resolved": "https://registry.npmjs.org/pino-std-serializers/-/pino-std-serializers-6.2.2.tgz",
|
||||
|
@ -1740,6 +1867,15 @@
|
|||
"node": ">= 0.10"
|
||||
}
|
||||
},
|
||||
"node_modules/pump": {
|
||||
"version": "3.0.0",
|
||||
"resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz",
|
||||
"integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==",
|
||||
"dependencies": {
|
||||
"end-of-stream": "^1.1.0",
|
||||
"once": "^1.3.1"
|
||||
}
|
||||
},
|
||||
"node_modules/qs": {
|
||||
"version": "6.11.0",
|
||||
"resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz",
|
||||
|
@ -1906,6 +2042,11 @@
|
|||
"resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz",
|
||||
"integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg=="
|
||||
},
|
||||
"node_modules/secure-json-parse": {
|
||||
"version": "2.7.0",
|
||||
"resolved": "https://registry.npmjs.org/secure-json-parse/-/secure-json-parse-2.7.0.tgz",
|
||||
"integrity": "sha512-6aU+Rwsezw7VR8/nyvKTx8QpWH9FrcYiXXlqC4z5d5XQBDRqtbfsRjnwGyqbi3gddNtWHuEk9OANUotL26qKUw=="
|
||||
},
|
||||
"node_modules/semver": {
|
||||
"version": "7.5.4",
|
||||
"resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz",
|
||||
|
@ -2160,6 +2301,17 @@
|
|||
"node": ">=8"
|
||||
}
|
||||
},
|
||||
"node_modules/strip-json-comments": {
|
||||
"version": "3.1.1",
|
||||
"resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz",
|
||||
"integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==",
|
||||
"engines": {
|
||||
"node": ">=8"
|
||||
},
|
||||
"funding": {
|
||||
"url": "https://github.com/sponsors/sindresorhus"
|
||||
}
|
||||
},
|
||||
"node_modules/supports-preserve-symlinks-flag": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz",
|
||||
|
|
|
@ -19,6 +19,7 @@
|
|||
"node-cron": "^3.0.2",
|
||||
"pino": "^8.15.0",
|
||||
"pino-http": "^8.4.0",
|
||||
"pino-pretty": "^10.2.0",
|
||||
"promised-sqlite3": "^2.1.0",
|
||||
"undici": "^5.23.0"
|
||||
}
|
||||
|
|
|
@ -4,16 +4,14 @@ import makeText from "./makeText.mjs"
|
|||
import insertPublished from "./insertPublished.mjs"
|
||||
import logger from "./logger.mjs"
|
||||
import todaysPromptAlreadyPublished from "./todaysPromptAlreadyPublished.mjs"
|
||||
const maxCount = 30000000
|
||||
const minCount = 200000
|
||||
const spamMode = false
|
||||
|
||||
|
||||
export default async function checkAndPublish () {
|
||||
logger.trace("checkAndPublish called")
|
||||
logger.trace(todaysPromptAlreadyPublished())
|
||||
if(!await todaysPromptAlreadyPublished()){
|
||||
try {
|
||||
const prompt = await getNewPrompt({ minCount, maxCount, rarityBias: 0.7 })
|
||||
const prompt = await getNewPrompt()
|
||||
try {
|
||||
const text = makeText(prompt)
|
||||
try {
|
||||
|
|
|
@ -0,0 +1,6 @@
|
|||
export default {
|
||||
maxCount : 30000000,
|
||||
minCount : 200000,
|
||||
rarityBias: 0.7,
|
||||
spamMode : false
|
||||
}
|
|
@ -14,7 +14,7 @@ setGlobalDispatcher(agent)
|
|||
export default async function createNote(text) {
|
||||
const childLogger = logger.child({text})
|
||||
childLogger.trace("createNote called")
|
||||
const url = 'https://localhost:80/api/notes/create'
|
||||
const url = 'http://localhost:3000/api/notes/create'
|
||||
const params = {
|
||||
text: text,
|
||||
}
|
||||
|
|
Binary file not shown.
|
@ -1,5 +1,6 @@
|
|||
import logger from "./logger.mjs"
|
||||
import { db } from "./db.mjs"
|
||||
import config from "./config.mjs"
|
||||
|
||||
const blocklist = db.union([
|
||||
db('bad_words').select('word'),
|
||||
|
@ -8,14 +9,15 @@ const blocklist = db.union([
|
|||
])
|
||||
|
||||
export default async () => {
|
||||
logger.trace("getAcceptablePrompt called")
|
||||
return db('dictionary')
|
||||
.select('*')
|
||||
.where({
|
||||
derivative: 0,
|
||||
scientific: 0,
|
||||
})
|
||||
.andWhere('count', '<', maxCount)
|
||||
.andWhere('count', '>', minCount)
|
||||
.andWhere('count', '<', config.maxCount)
|
||||
.andWhere('count', '>', config.minCount)
|
||||
.andWhere('word', 'not in', blocklist)
|
||||
.whereRaw('length(word) > 3')
|
||||
.whereNotNull('pronunciation')
|
||||
|
|
|
@ -1,9 +1,9 @@
|
|||
import logger from "./logger.mjs"
|
||||
import getAcceptablePrompts from "./getAcceptablePrompts.mjs"
|
||||
import config from "./config.mjs"
|
||||
|
||||
export default async function getNewPrompt({ minCount = 200000, maxCount = 30000000, rarityBias = 0.5 }) {
|
||||
const childLogger = logger.child({minCount,maxCount,rarityBias})
|
||||
childLogger.trace("getNewPrompt called")
|
||||
export default async function getNewPrompt() {
|
||||
logger.trace("getNewPrompt called")
|
||||
|
||||
const getBiasedRng = (min, max, bias, influence) => {
|
||||
const random = Math.random() * (max - min) + min
|
||||
|
@ -12,7 +12,7 @@ export default async function getNewPrompt({ minCount = 200000, maxCount = 30000
|
|||
}
|
||||
|
||||
const randomEntry = (array) => {
|
||||
const random = getBiasedRng(0, 1, rarityBias, 1)
|
||||
const random = getBiasedRng(0, 1, config.rarityBias, 1)
|
||||
const mix = Math.random()
|
||||
return array[
|
||||
parseInt(
|
||||
|
|
|
@ -3,6 +3,7 @@ import bodyParser from "body-parser";
|
|||
import logger from "./logger.mjs";
|
||||
import pinoHTTP from 'pino-http'
|
||||
import start from "./start.mjs";
|
||||
import receiveMention from "./social-interaction/receiveMention.mjs";
|
||||
const app = express()
|
||||
const port = 4000
|
||||
app.use(bodyParser.json())
|
||||
|
@ -12,6 +13,7 @@ app.use(
|
|||
})
|
||||
)
|
||||
app.post('/api', (req,res) => {
|
||||
receiveMention(req.body)
|
||||
logger.info("webhook received:",req.body.body.note.text)
|
||||
res.sendStatus(200)
|
||||
})
|
||||
|
|
|
@ -4,19 +4,25 @@ import { fileURLToPath } from 'url';
|
|||
const __filename = fileURLToPath(import.meta.url);
|
||||
const __dirname = path.dirname(__filename);
|
||||
|
||||
const fileTransport = pino.transport({
|
||||
target: 'pino/file',
|
||||
options: { destination: `${__dirname}/app.log` },
|
||||
});
|
||||
|
||||
export default pino({
|
||||
level: process.env.PINO_LOG_LEVEL || 'trace',
|
||||
// const transport = pino.transport({
|
||||
// targets: [{
|
||||
// level: 'trace',
|
||||
// target: 'pino-pretty' // must be installed separately
|
||||
// }, {
|
||||
// level: 'trace',
|
||||
// target: 'pino/file',
|
||||
// options: { destination: `${__dirname}/app.log` }
|
||||
// }]
|
||||
// })
|
||||
export default pino(
|
||||
{
|
||||
level: 'trace',
|
||||
formatters: {
|
||||
level: (label) => {
|
||||
return { severity: label.toUpperCase() };
|
||||
return { level: label.toUpperCase() };
|
||||
},
|
||||
},
|
||||
timestamp: pino.stdTimeFunctions.isoTime,
|
||||
},
|
||||
fileTransport
|
||||
)
|
||||
//pino.destination(`${__dirname}/app.log`)
|
||||
);
|
|
@ -0,0 +1,26 @@
|
|||
import logger from "../logger.mjs"
|
||||
import getAcceptablePrompts from "../getAcceptablePrompts.mjs"
|
||||
import { checkSpelling } from "spellchecker"
|
||||
|
||||
export default async function (note) {
|
||||
const childLogger = logger.child({note})
|
||||
childLogger.trace("receiveMention called")
|
||||
const textArray = note.text
|
||||
.replace(/@[a-z,A-Z,0-9]* /g, "")
|
||||
.trim()
|
||||
.match(/[a-z]*/ig)
|
||||
if(textArray.length===1){
|
||||
const word = textArray[0]
|
||||
if(checkSpelling(word)){
|
||||
if(await getAcceptablePrompts().indexOf(word)!=-1){
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
//ETC
|
||||
}else if(textArray.length>1){
|
||||
//"Please reply with one word, I'm only a bot etc etc"
|
||||
}
|
||||
|
||||
}
|
Loading…
Reference in New Issue