新月の開発

5f9e192e 名無しさん 2017-04-04 15:09 返信
スマホからでも新月使えるようになった(自鯖必須、IP変更対応)
↓は合版、朔でも少し修正すれば動くはず
app_rootに↓とsaku.ini(IP部分を{{IP}})に置き換えたものを置いて、forever start app.jsするだけ
${IP}:${PORT}?pass=${PASS}にアクセスすれば、自動でsaku.iniを書き換えて再起動する

//app.js
const PASS="パスワード";
const PORT=1111;

var http = require('http');
var url = require('url');
var fs = require('fs');
var child_process = require('child_process');

var app=child_process.exec("./app");

http.createServer(function (req, res) {
  res.writeHead(200, {'Content-Type': 'text/html'});
  if(req.method=='GET') {
      var pass = url.parse(req.url,true).query["pass"];
      if(pass===PASS){
        app.kill();
        var ip="^"+req.headers["x-real-ip"].replace(/\./g,"\\.");
        var conf=fs.readFileSync("./saku.ini","utf8")
          .replace(/\{\{IP\}\}/g,ip);
        fs.writeFileSync("./file/saku.ini",conf,{encoding:"utf8"});
        app=child_process.exec("./app");
        res.end("成功");
      }
  }

  res.end();
}).listen(PORT);
acd1bb64 名無しさん 2017-04-04 15:53 返信
/nodeが/nodesだったらもっと便利だと思う
一つしか返したくなければ一つだけ返せばいいし、全部返したいなら全部返せばいい
リクエスト側もその中から何個使うかは自由に選択すればいいし
そこらへんは実装依存で
4764b481 名無しさん 2017-04-04 18:00 返信
>>acd1bb64
もう一年ぐらい経つけど昔議論されてたよ
[[shinGETsuプロトコル 0.8について議論するスレ]]
1f0b2a9c 名無しさん 2017-04-04 18:05 返信
>>4764b481
見てみる
httpヘッダのユーザーエージェントとかで実装とそのバージョン確認して、対応していればnodesにアクセスみたいな独自実装作っても良いと思うけど
7bc27551 名無しさん 2017-04-04 19:39 返信
UPnPCJって言うの使ったらポート開放出来たー
新実装作るぞー
cb7562e1 名無しさん 2017-04-04 21:01 返信
ログに添付ファイルの中身まで入ってるから容量デカすぎ
添付ファイルのハッシュだけ入れて、別に探すとかいう仕様なら良かったのに
0483e626 名無しさん 2017-04-04 22:26 返信
>>cb7562e1
それも>>4764b481にあったけど互換性の問題でちょっと厳しい
でもまあ実装側でなんとかなるもんよ
2dc1dc70 名無しさん 2017-04-10 17:11 返信
そういや全文検索ってできない?
1e7bd140 名無しさん 2017-04-10 18:04 返信
>>2dc1dc70
googleで多少は出来るけど残念ながら自力でレコード検索システム作らないと出来ない
33b4e587 名無しさん 2017-04-10 23:19 返信
実装すれば余裕
ElasticSearchとか使おうぜ

[0]トップ | [2]ページの先頭 | [6]古>> | 保管庫

ネットワーク利用規約
(最大: 1536KB)
名前:
E-mail:

(新月の開発/200/0.1MB)

Powered by shinGETsu.