Jsdo.itの関連作品
- Google App Engineでメール送信
- 俺のGistへのアクセス状況を確認する
- 任意のURL画像を取得して表示する サーバ側処理
- サーバサイドJavaScriptで1x1のgif画像を出力する
- Google App EngineのMemcacheを試す(有効期限指定版)
- サーバサイドJavaScript アクセス元IPアドレスを取得する
- Google App Engineのログにアクセスする
- GAEでログイン処理
- Datastoreを扱うテスト
- GAE上で動作中のRhinoの中でRhinoを使うテスト
- 任意のHTMLをGETする サーバサイド処理
importClass(java.util.TimeZone);
// 黙ってるとGoogle App EngineではタイムゾーンがUTCなので、
// 明示的に日本時間を指定する。
TimeZone.setDefault(TimeZone.getTimeZone("JST"));
importPackage(Packages.com.google.appengine.api.datastore);
var ds = DatastoreServiceFactory.getDatastoreService();
var query = new Query("msg");
query.addFilter("uname",
Query.FilterOperator.NOT_EQUAL,
req.headers['user-agent']);
query.addSort("uname", Query.SortDirection.DESCENDING);
var imas = ds.prepare(query).asList(
FetchOptions.Builder.withOffset(0));
msg = imas.size();
var itEnt = imas.iterator();
while(itEnt.hasNext()) {
var ent = itEnt.next();
var name = ent.getProperty("uname");
var date = ent.getProperty("uemail");
msg = msg + "\n" + "[" + date + "]" + name;
}
importPackage(Packages.com.google.appengine.api.log);
importClass(java.util.Calendar);
importClass(java.util.TimeZone);
// 黙ってるとGoogle App EngineではタイムゾーンがUTCなので、
// 明示的に日本時間を指定する。
TimeZone.setDefault(TimeZone.getTimeZone("JST"));
var query = LogQuery.Builder.withDefaults();
query.includeAppLogs(true);
var records = LogServiceFactory.getLogService().fetch(query);
// 結果をmsgに文字列として格納する。
var msg = "";
// RingoJSでのイテレータの扱いに実は難儀したw
var it = records.iterator();
// 何件取得したかのカウンタ(取得件数制限するために利用)
var limit = 0;
// アクセス状況が気になるパスを指定する。
var targetPath = "/ykoV";
while(it.hasNext()&&limit<15) {
// イテレータを進める
var record = it.next();
if(record.getResource().lastIndexOf(targetPath,0)==0) {
var cal = Calendar.getInstance();
cal.setTimeInMillis(record.getStartTimeUsec() / 1000);
// アクセスのあった時刻を取得する。
msg = msg + java.lang.String.format("<br />Date: %s", cal.getTime().toString()) + "<br>";
// アクセス元のIPアドレスを取得する。
msg = msg + "IP: " + record.getIp()+"<br />";
//msg = msg + "Method: " + record.getMethod()+"<br />";
// アクセスされたURLを取得する。
msg = msg + "Resource " + record.getResource()+"<br />";
limit++;
}
}