var minisrv_service_file = true; console.log('f') async function throwError(e) { var errpage = wtvshared.doErrorPage(400, null, e.toString()); sendToClient(socket, errpage[0], errpage[1]); } async function WebTVListGroup(group) { wtvnews.connectUsenet().then(() => { wtvnews.selectGroup(group).then(() => { wtvnews.listGroup(group).then((response) => { if (response.code == 211) { NGCount = response.group.number; NGArticles = response.group.articleNumbers; wtvnews.getHeaderObj(NGArticles).then((messages) => { wtvnews.quitUsenet(); headers = `200 OK Connection: Keep-Alive Content-Type: text/html wtv-expire: wtv-news:/news?group=${request_headers.query.group}` data = ` ${request_headers.query.group}
Post
Help
Group: ${request_headers.query.group}
` if (NGCount == 0) { data += `This group has no postings`; } else { data += NGCount + " posting"; if (NGCount != 1) data += "s" } data += `
` if (NGCount > 0) { Object.keys(messages).forEach(function (k) { var message = messages[k] var message_date = message.headers.DATE; data += `
${(message.headers.SUBJECT) ? message.headers.SUBJECT : "(No Subject)"}
${message.headers.FROM}, ${message.headers.DATE}
`; }); } data += `
`; sendToClient(socket, headers, data); }).catch((e) => { throwError(e) });; } }).catch((e) => { throwError(e) });; }).catch((e) => { throwError(e) });; }).catch((e) => { throwError(e) }); } async function WebTVShowMessage(client, group, article) { var connected = await clientConnect(client) if (connected) { response = await selectGroup(client, group); if (response) { response = await getArticle(client, article); console.log(response); if (response.code == 220) { headers = `200 OK Content-type: text/html`; var message_colors = session_data.mailstore.defaultColors; data = ` ${(response.article.headers.SUBJECT) ? wtvshared.htmlEntitize(response.article.headers.SUBJECT) : '(No subject)'}
Group
Previous
Next
Next New
Mail to
Respond
Help
  
Post
Group: ${wtvshared.htmlEntitize(response.article.headers.NEWSGROUPS)}
Date: ${console.log(Date.parse(response.article.headers.DATE))} ${strftime("%a, %b %e, %Y, %I:%M%P", new Date(Date.parse(response.article.headers.DATE) / 1000))}
From: `; // if (message.from_name != message.from_addr) { // data += `${wtvshared.htmlEntitize(message.from_addr)} `; // } else { data += `${wtvshared.htmlEntitize(response.article.headers.FROM)}`; // } data += `



${(response.article.headers.SUBJECT) ? wtvshared.htmlEntitize(response.article.headers.SUBJECT) : '(No subject)'}

`; var message_body = response.article.body.join("\n"); data += ` ${wtvshared.htmlEntitize(message_body, true)}

`; data += `

`; /* if (message.attachments) { message.attachments.forEach((v, k) => { if (v) { console.log("*****************", v['Content-Type']); switch (v['Content-Type']) { case "image/jpeg": data += `

`; break; case "audio/wav": data += `
  recording.wav (wav attachment)


`; break; } } }); } if (message.url) { data += `Included Page: ${wtvshared.htmlEntitize(message.url_title).replace(/'/gi, "'")}`; } */ data += `

`; sendToClient(socket, headers, data); } else { var errpage = wtvshared.doErrorPage(400, null, "No such article in group "+group+""); sendToClient(socket, errpage[0], errpage[1]); } } else { var errpage = wtvshared.doErrorPage(400, null, "No such group: "+group+""); sendToClient(socket, errpage[0], errpage[1]); } } } if (!minisrv_config.services[service_name].upstream_address || !minisrv_config.services[service_name].upstream_port) { var errpage = doErrorPage(); headers = errpage[0]; data = errpage[1]; } else { var request_is_async = true; if (request_headers.query.group) { if (request_headers.query.article) { WebTVShowMessage(request_headers.query.group, request_headers.query.article); } else { WebTVListGroup(request_headers.query.group); } } }