| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758 |
- import express from 'express'
- import { createServer } from 'http'
- import path from 'path'
- import { Socket } from 'socket.io'
- import { toBuffer } from 'qrcode'
- import fetch from 'node-fetch'
- function connect(conn, PORT) {
- let app = global.app = express()
- console.log(app)
- let server = global.server = createServer(app)
- // app.use(express.static(path.join(__dirname, 'views')))
- let _qr = 'invalid'
- conn.ev.on('connection.update', function appQR({ qr }) {
- if (qr) _qr = qr
- })
- app.use(async (req, res) => {
- res.setHeader('content-type', 'image/png')
- res.end(await toBuffer(_qr))
- })
- // let io = new Socket(server)
- // io.on('connection', socket => {
- // let { unpipeEmit } = pipeEmit(conn, socket, 'conn-')
- // socket.on('disconnect', unpipeEmit)
- // })
- server.listen(PORT, () => {
- console.log('App listened on port', PORT)
- if (opts['keepalive']) keepAlive()
- })
- }
- function pipeEmit(event, event2, prefix = '') {
- let old = event.emit
- event.emit = function (event, ...args) {
- old.emit(event, ...args)
- event2.emit(prefix + event, ...args)
- }
- return {
- unpipeEmit() {
- event.emit = old
- }
- }
- }
- function keepAlive() {
- const url = `https://${process.env.REPL_SLUG}.${process.env.REPL_OWNER}.repl.co`
- if (/(\/\/|\.)undefined\./.test(url)) return
- setInterval(() => {
- fetch(url).catch(console.error)
- }, 5 * 1000 * 60)
- }
- export default connect
|