cruxx commited on
Commit
bb4997c
·
1 Parent(s): 97fc678

Update src/index.js

Browse files
Files changed (1) hide show
  1. src/index.js +13 -16
src/index.js CHANGED
@@ -3,6 +3,7 @@ for (let sign of ['unhandledRejection', 'uncaughtException']) process.on(sign, c
3
  const os = require('os')
4
  const util = require('util')
5
  const uuid = require('uuid')
 
6
  const express = require('express')
7
  const puppeteer = require('puppeteer')
8
  const rateLimit = require('express-rate-limit')
@@ -14,20 +15,15 @@ const sessions = new Map()
14
  const app = express()
15
  app.set('trust proxy', 1)
16
  app.set('json spaces', 4)
 
17
  app.use(express.urlencoded({ extended: true }))
18
  app.use(async (req, res, next) => {
19
- console.log(req.method, req.path, res.statusCode)
20
-
21
- const sessionId = req.query.sessionId || req.body.sessionId
22
- if (sessions.has(sessionId)) {
23
- const characterAI = sessions.get(sessionId)
24
-
25
- if (Date.now() - characterAI.lastfetch > 10 * 60 * 1000) {
26
  await characterAI.unauthenticate()
27
  sessions.delete(sessionId)
28
  }
29
  }
30
-
31
  next()
32
  })
33
 
@@ -64,7 +60,7 @@ app.get('/ev', async (req, res) => {
64
  }
65
  })
66
 
67
- app.get('/sessions', (_, res) => res.json({ sessions: eval(sessions.values()) }))
68
 
69
  app.all('/api', rateLimit(), async (req, res) => {
70
  if (!['GET', 'POST'].includes(req.method)) return res.json({ message: 'Method not allowed' })
@@ -80,9 +76,10 @@ app.all('/api', rateLimit(), async (req, res) => {
80
 
81
  const chat = await characterAI.createOrContinueChat(characterId)
82
  const response = await chat.sendAndAwaitResponse(text, true)
 
83
 
84
  delete response.chat
85
- res.json({ ...response, sessionId })
86
  return
87
  }
88
 
@@ -94,12 +91,13 @@ app.all('/api', rateLimit(), async (req, res) => {
94
 
95
  const chat = await characterAI.createOrContinueChat(characterId)
96
  const response = await chat.sendAndAwaitResponse(text, true)
 
97
 
98
  delete response.chat
99
- res.json({ ...response, sessionId: id })
100
  } catch (e) {
101
  console.log(e)
102
- e = e.toString()
103
  res.json({ message: e === '[object Object]' ? 'Internal Server Error' : e })
104
  }
105
  })
@@ -107,7 +105,6 @@ app.all('/api', rateLimit(), async (req, res) => {
107
  const PORT = process.env.PORT || 7860
108
  app.listen(PORT, () => console.log('App running on port', PORT))
109
 
110
- function findChromium() {
111
- let cmd = execSync('nix eval nixpkgs.chromium.outPath --raw').toString()
112
- return `${cmd}/bin/chromium`
113
- }
 
3
  const os = require('os')
4
  const util = require('util')
5
  const uuid = require('uuid')
6
+ const logger = require('morgan')
7
  const express = require('express')
8
  const puppeteer = require('puppeteer')
9
  const rateLimit = require('express-rate-limit')
 
15
  const app = express()
16
  app.set('trust proxy', 1)
17
  app.set('json spaces', 4)
18
+ app.use(logger('dev'))
19
  app.use(express.urlencoded({ extended: true }))
20
  app.use(async (req, res, next) => {
21
+ for (let [sessionId, characterAI] of sessions) {
22
+ if (Date.now() - characterAI.lastFetch > 10 * 60 * 1000) {
 
 
 
 
 
23
  await characterAI.unauthenticate()
24
  sessions.delete(sessionId)
25
  }
26
  }
 
27
  next()
28
  })
29
 
 
60
  }
61
  })
62
 
63
+ app.get('/sessions', (_, res) => res.json({ sessions: eval(Array.from(sessions)) }))
64
 
65
  app.all('/api', rateLimit(), async (req, res) => {
66
  if (!['GET', 'POST'].includes(req.method)) return res.json({ message: 'Method not allowed' })
 
76
 
77
  const chat = await characterAI.createOrContinueChat(characterId)
78
  const response = await chat.sendAndAwaitResponse(text, true)
79
+ const urlAvatar = `https://characterai.io/i/80/static/avatars/${response.srcAvatarFileName}`
80
 
81
  delete response.chat
82
+ res.json({ ...response, urlAvatar, sessionId })
83
  return
84
  }
85
 
 
91
 
92
  const chat = await characterAI.createOrContinueChat(characterId)
93
  const response = await chat.sendAndAwaitResponse(text, true)
94
+ const urlAvatar = `https://characterai.io/i/80/static/avatars/${response.srcAvatarFileName}`
95
 
96
  delete response.chat
97
+ res.json({ ...response, urlAvatar, sessionId: id })
98
  } catch (e) {
99
  console.log(e)
100
+ e = String(e)
101
  res.json({ message: e === '[object Object]' ? 'Internal Server Error' : e })
102
  }
103
  })
 
105
  const PORT = process.env.PORT || 7860
106
  app.listen(PORT, () => console.log('App running on port', PORT))
107
 
108
+ // const { REPL_SLUG, REPL_OWNER } = process.env
109
+ // if (REPL_SLUG && REPL_OWNER)
110
+ setInterval(() => fetch(`https://c-ai.team-skizo.repl.co`, { method: 'head' }).catch(console.log), 20 * 1000)