changeset 3427:06cade7f50f8

tess
author KASHIWAGURA Aya <c115046@?.koeki-u.ac.jp>
date Thu, 27 Jul 2017 13:34:51 +0900
parents 3a18dc69045a
children ed1a15e1c32d
files event/oasis2017/idol/pro.rb event/oasis2017/idol/tess.rb
diffstat 2 files changed, 209 insertions(+), 153 deletions(-) [+]
line wrap: on
line diff
--- a/event/oasis2017/idol/pro.rb	Thu Jul 27 12:38:25 2017 +0900
+++ b/event/oasis2017/idol/pro.rb	Thu Jul 27 13:34:51 2017 +0900
@@ -40,6 +40,7 @@
 if form_clr > "" && id > ''# クリアボタンが押されていたら
   db.execute("DELETE FROM point WHERE id=?", id)
 end
+
 if form_name > ""             # formからの名前設定がもしあれば
   db.execute("REPLACE INTO users VALUES(?, ?, ?)", id, form_name, Time.now.to_s)
 end
@@ -60,13 +61,12 @@
 
 EOF
 
-
 if !name      # もしユーザのプレイ名が未設定なら
   title = "アイドルを育成しよう!"
   hello = "プレイ名を入力してね"
   input = '<input name="playname">'
-  
-  print('<form action="name.rb" method="POST">')
+
+  print('<form action="tess.rb" method="POST">')
   printf(<<-EOF,
 
 <h1>%s</h1>
@@ -83,156 +83,6 @@
 
 EOF
          title, hello, input,)
-
-#else
-  #導入画面
-
-  #require 'cgi'
-  #c = CGI.new(:accept_charset => 'utf-8')
-
-  page = Hash.new
-  n = 0
-  img = ""
-
-
-  open("aikiss-p.txt","r:utf-8") do |cat|
-
-    while line = cat.gets
-      if /(\d+)\s+(\S+)\s+/ =~line
-        page[$1] = $2
-      end
-    end
-  end
-
-
-  p = c["page"]
-  gin = c["adm"]
-  x = c["sam"]
-
-  if p==""
-    p="1"# page変数指定がなければ "1" とする
-  end
-  name = c["name"]
-
-
-
-
-  if p =="9"
-    print(<<-"EOF")
-<form method="POST" action="home.rb">
-EOF
-
-  else
-    print(<<-"EOF")
-  <form method=\"POST\" action=\"pro.rb\">
-EOF
-
-  end
-
-  # ページ番号による切り替え処理
-
-  printf("<p>%s</p>\n",page[p])
-  case p
-  when "1"
-    img = "1.jpg"
-    nextpage = "2"
-
-  when "2"
-    nextpage = "3"
-
-  when "3"
-    nextpage = "4"
-    img = "blue1.png"
-
-  when "4"
-    nextpage = "5"
-    img = "white1.png"
-  when "5"
-    nextpage = "6"
-    img = "red1.png"
-  when "6"
-    nextpage = "7"
-  when "7"
-    nextpage = "8"
-
-  when "8"
-
-    puts('<img src="shugo2.png">')
-    nextpage = "9"
-
-    print(<<-"EOF")
-<p><br>
-
-<label><input type="radio" name="adm" value="red">中央(日和山あかね)</label><br>
-<label><input type="radio" name="adm" value="white">画面左(白鳥ゆき)</label><br>
-<label><input type="radio" name="adm" value="blue">画面右(鳥海あおい)</label></p>
- EOF
-
-  when "9"
-    case gin
-    when "red"
-      print(<<-"EOF")
-   <img src="red1.png"align="left"valign="middle">
-   <p>「初めまして、日和山あかね(ひよりやま あかね)だよ!<br>好きなのは歌とダンス!<b\
-r>!夢は大きなステージでライブをすることでっす!<br>たっくさん努力するから応援よろし\\
-くね</p>
-    この子にする<br>
-
-  <br><INPUT type="button" onclick="history.back()" value="NO">
-   <input type="submit"    value="YES">
-EOF
-
-
-    when "white"
-      print(<<-"EOF")
-   <img src="white1.png"align="left"valign="middle">
- <p>初めまして白鳥ゆき(しらとり ゆき)です。<br>他の娘たちみたいな輝くもののない普通\
-の子ですが、<br>精一杯頑張りますのでよろしくお願いします。」</p>
-    この子にする?<br>
-  <br><INPUT type="button" onclick="history.back()" value="NO">
- <input type="submit"    value="YES">
-EOF
-
-
-
-    when "blue"
-      print(<<-"EOF")
-   <img src="blue1.png"align="left"valign="middle">
-  <p>「は、初めまして。えっと、鳥海あおい(とりみ あおい)と申します。<br>人前に立つ\\
-のは苦手で、少しでもこんな自分を変えられたらって思ったんですけど。<br>やっぱり私、向\\
-いてないですよね…?」</p>
-    この子にする?
-  <br><INPUT type="button" onclick="history.back()" value="NO">
-<input type="submit"   value="YES">
-EOF
-
-
-    end
-    nextpage =nil
-
-  end
-
-
-
-
-
-
-  if p =="9"
-    printf("<input type=\"hidden\" name=\"sam\" value=\"%s\">\n", gin)
-    printf("<input type=\"hidden\" name=\"page\" value=\"%s\">\n", nextpage)
-
-    #elsif p =="10"
-    # printf("<input type=\"hidden\" name=\"sam\" value=\"%s\">\n", gin)
-
-    #printf("<input type=\"hidden\" name=\"page\" value=\"%s\">\n", nextpage)
-  elsif nextpage
-
-    printf("<input type=\"hidden\" name=\"page\" value=\"%s\">\n", nextpage)
-    printf("<img src=\"%s\">\n",img)
-    puts('<br><INPUT type="button" onclick="history.back()" value="前へ">')
-    puts('<input type="submit"   value="次へ">')
-
-  end
 else                          # プレイ名設定済みならホーム画面へ
   print('<form action="home.rb" method="POST">')
   print('<input type="hidden" name="playname" value="id" >')
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/event/oasis2017/idol/tess.rb	Thu Jul 27 13:34:51 2017 +0900
@@ -0,0 +1,206 @@
+#!/usr/bin/env ruby
+# -*- coding: utf-8 -*-
+require 'sqlite3'
+file = "db/point.sq3"
+
+require 'cgi'
+c = CGI.new(:accept_charset => "UTF-8")
+
+# 前回のアクセスで既にcookieが定義されていたら取得
+# ブラウザからのcookieは、c.cookies[変数名][0] で受け取る
+cookie_id=c.cookies["id"][0]
+
+# 前回のアクセスで入力された値を取得
+form_name=c["playname"]        # nameをフォームから取得(もしあれば)
+form_kwd=c["keyword"]          # keywordも取得(もしあれば)
+form_clr=c["clear"]            # クリアボタン
+
+if cookie_id == nil             # (1)もしcookieからのidがなければ新規生成
+  # 新規idは、現在時刻を秒(to_i)にした文字列(to_s)と乱数の組み合わせ
+  newid = Time.now.to_i.to_s + "/" + rand(99999).to_s
+  id=newid                      # 新規idをidとする
+else                            # (2)cookieからのidがあればそれをidとする
+  id=cookie_id
+end
+
+# idをすぐcookieで相手ブラウザに送る
+# 変数の期限を24時間に設定し、expire変数に入れる
+expire = (Time.now+24*3600).gmtime.strftime("%a, %d %b %Y %H:%M:%S GMT")
+
+printf("Content-type: text/html; charset=UTF-8\n")
+printf("Set-Cookie: id=%s; expires=%s\n\n", id, expire)
+
+db = SQLite3::Database.new("db/users.sq3")
+db.execute("PRAGMA foreign_keys=on")
+db.execute("CREATE TABLE IF NOT EXISTS " +
+           "users(id text primary key, name text, creation text)")
+db.execute("CREATE TABLE IF NOT EXISTS " +
+           "point(id, keyword text, FOREIGN KEY(id) REFERENCES users(id))")
+
+if form_clr > "" && id > ''# クリアボタンが押されていたら
+  db.execute("DELETE FROM point WHERE id=?", id)
+end
+if form_name > ""             # formからの名前設定がもしあれば
+  db.execute("REPLACE INTO users VALUES(?, ?, ?)", id, form_name, Time.now.to_s)
+end
+point = 0# 開始直後は0点
+# SELECTの検索結果に値があるかは [0] が nil かどうかで判定できる
+name = db.execute("SELECT name FROM users WHERE id=?", id)[0]
+
+print(<<-EOF)
+
+
+<!DOCTYPE html>
+<html lang="ja">
+<head><title>アイキス、しよ?</title>
+<link rel="stylesheet" type="text/css" href="ema3.css" >
+<meta name="viewport" content="width=device-width">
+</head>
+<body>
+
+EOF
+
+page = Hash.new
+  n = 0
+  img = ""
+
+
+  open("aikiss-p.txt","r:utf-8") do |cat|
+
+    while line = cat.gets
+      if /(\d+)\s+(\S+)\s+/ =~line
+        page[$1] = $2
+      end
+    end
+  end
+
+
+  p = c["page"]
+  gin = c["adm"]
+  x = c["sam"]
+
+  if p==""
+    p="1"# page変数指定がなければ "1" とする
+  end
+  name = c["name"]
+
+
+  if p =="9"
+     print(<<-"EOF")
+<form method="POST" action="home.rb">
+EOF
+
+  else
+    print(<<-"EOF")
+  <form method=\"POST\" action=\"tess.rb\">
+EOF
+
+  end
+
+  # ページ番号による切り替え処理
+
+  printf("<p>%s</p>\n",page[p])
+  case p
+  when "1"
+    img = "1.jpg"
+    nextpage = "2"
+
+  when "2"
+ nextpage = "3"
+
+  when "3"
+    nextpage = "4"
+    img = "blue1.png"
+
+  when "4"
+    nextpage = "5"
+    img = "white1.png"
+  when "5"
+    nextpage = "6"
+    img = "red1.png"
+  when "6"
+    nextpage = "7"
+  when "7"
+    nextpage = "8"
+
+  when "8"
+
+    puts('<img src="shugo2.png">')
+    nextpage = "9"
+
+    print(<<-"EOF")
+<p><br>
+<label><input type="radio" name="adm" value="red">中央(日和山あかね)</label><br>
+<label><input type="radio" name="adm" value="white">画面左(白鳥ゆき)</label><br>
+<label><input type="radio" name="adm" value="blue">画面右(鳥海あおい)</label></p>
+ EOF
+
+  when "9"
+    case gin
+    when "red"
+      print(<<-"EOF")
+   <img src="red1.png"align="left"valign="middle">
+   <p>「初めまして、日和山あかね(ひよりやま あかね)だよ!<br>好きなのは歌とダンス!<b\
+r>!夢は大きなステージでライブをすることでっす!<br>たっくさん努力するから応援よろし\\
+くね</p>
+    この子にする<br>
+
+  <br><INPUT type="button" onclick="history.back()" value="NO">
+   <input type="submit"    value="YES">
+EOF
+
+
+ when "white"
+      print(<<-"EOF")
+   <img src="white1.png"align="left"valign="middle">
+ <p>初めまして白鳥ゆき(しらとり ゆき)です。<br>他の娘たちみたいな輝くもののない普通\
+の子ですが、<br>精一杯頑張りますのでよろしくお願いします。」</p>
+    この子にする?<br>
+  <br><INPUT type="button" onclick="history.back()" value="NO">
+ <input type="submit"    value="YES">
+EOF
+
+
+
+    when "blue"
+      print(<<-"EOF")
+   <img src="blue1.png"align="left"valign="middle">
+  <p>「は、初めまして。えっと、鳥海あおい(とりみ あおい)と申します。<br>人前に立つ\\
+のは苦手で、少しでもこんな自分を変えられたらって思ったんですけど。<br>やっぱり私、向\\
+いてないですよね…?」</p>
+    この子にする?
+  <br><INPUT type="button" onclick="history.back()" value="NO">
+<input type="submit"   value="YES">
+EOF
+
+
+    end
+    nextpage =nil
+  end
+
+if p =="9"
+  printf("<input type=\"hidden\" name=\"sam\" value=\"%s\">\n", gin)
+  printf("<input type=\"hidden\" name=\"page\" value=\"%s\">\n", nextpage)
+
+
+elsif nextpage
+  
+  printf("<input type=\"hidden\" name=\"page\" value=\"%s\">\n", nextpage)
+  printf("<img src=\"%s\">\n",img)
+  puts('<br><INPUT type="button" onclick="history.back()" value="前へ">')
+  puts('<input type="submit"   value="次へ">')
+
+end
+
+
+
+
+print(<<-EOF)
+
+
+</form></body></html>
+EOF
+
+
+
+

yatex.org