Mercurial > hgrepos > hgweb.cgi > skipweb
view event/oasis2017/idol/home.rb @ 1752:e4aebce2a7f0
homehome
author | KASHIWAGURA Aya<c115046@?.koeki-u.ac.jp> |
---|---|
date | Sat, 29 Jul 2017 14:34:25 +0900 |
parents | b3f56d39c645 |
children | b31c267e98fe |
line wrap: on
line source
# !/usr/bin/env ruby # coding: utf-8 # tail -f /usr/local/apache2/logs/error_log require 'sqlite3' file = "../db/users.sq3" require 'cgi' c = CGI.new(:accept_charset => 'utf-8') gin = c["sam"] image = "" # 前回のアクセスで既に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(file) 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 pt = 0 # 開始直後は0点 # SELECTの検索結果に値があるかは [0] が nil かどうかで判定できる name = db.execute("SELECT name FROM users WHERE id=?", id)[0] print(<<-EOF) <!DOCTYPE html> EOF if gin =="" gin = "red" end r = db.execute("SELECT count(*) FROM point WHERE id=?", id)[0] pt = (r ? r[0] : 0) print(<<-EOF) <htm lang="ja"> <head><title>アイキス!★ホーム</title> EOF printf("<link rel=\"stylesheet\" type=\"text/css\" href=\"%s.css\" >", gin) puts "<meta name=\"viewport\" content=\"width=device-width\"> </head> <body> <form method=\"POST\" action=\"home.rb\">" case gin when "red" printf(<<-EOF, <div class="box1"> <img src="red1.png"> <p> 「一緒にQRコード探しにいこうよ! %s さん!」</p> </div> EOF name) when "blue" print(<<-EOF, <div class="box1"> <img src="blue1.png"> <p>「%s さん、よ、よろしくお願いします……!」 </p> </div> EOF when "white" print(<<-EOF, <div class="box1"> <img src="white1.png"> <p> 「多くのファンに私たちのライブ見てもらえるよう、頑張ります!%sさん!」 </p> </div> EOF end qr = ARGV[0] point = nil if ARGV[0] == "A" #1つ目 point = "ID1" elsif ARGV[0] ="B" #二つ目 point = "ID2" elsif ARGV[0] =="C" #三つ目 point = "ID3" elsif ARGV[0] =="849054474888775292" #四つ目 point = "80" elsif ARGV[0] =="61520500659400819" #五つ目 point = "120" elsif ARGV[0] =="528856582528717535" #六つ目 point = "150" end if point db.execute("REPLACE INTO point VALUES(?, ?)", id, point) end r = db.execute("SELECT count(*) FROM point WHERE id=?", id)[0] pt = (r ? r[0].to_i : 0) printf("<br>現在の獲得ファン数:%s<br>",pt) if pt < 100 printf("次の話までの目標獲得ファン数:%s<br>",100-pt) elsif pt < 200 printf("<br>次の話までの目標獲得ファン数:%s<br>",200-pt) elsif pt < 560 printf("<br>次の話までの目標獲得ファン数:%s<br>",pt) end #print("(`・ω・´)< QRコードは全部で6種類あるよ!") case gin when "red" if pt >= 100 && pt < 200 print(<<-"EOF") <br><br> ☆ ★ ☆ ★ ☆ ★ ☆ <br> <a href="red_1.rb">Episode 1</a> Episode 2<br> Episode 3<br> EOF elsif pt >= 200 && pt < 560 print(<<-"EOF") <br><br> ☆ ★ ☆ ★ ☆ ★ ☆ <br> <a href="red_1.rb">Episode 1</a><br> <a href="red_2.rb">Episode 2</a><br> Episode 3<br> EOF elsif pt >= 560 print(<<-"EOF") <a href="red_1.rb">Episode 1</a><br> <a href="red_2.rb">Episode 2</a><br> <a href="red_3.rb">Episode 3</a> EOF elsif pt < 100 print(<<-"EOF") <br><br> ☆ ★ ☆ ★ ☆ ★ ☆ <br> Episode 1<br> Episode 2<br> Episode 3<br> EOF end when "blue" if pt >= 100 && pt < 200 print(<<-"EOF") <br><br> ☆ ★ ☆ ★ ☆ ★ ☆ <br> <a href="blue_1.rb">Episode 1</a> Episode 2<br> Episode 3<br> EOF elsif pt >= 200 && pt < 560 print(<<-"EOF") <a href="blue_1.rb">Episode 1</a><br> <a href="blue_2.rb">Episode 2</a> Episode 3<br> EOF elsif pt >= 560 print(<<-"EOF") <br><br> ☆ ★ ☆ ★ ☆ ★ ☆ <br> <a href="blue_1.rb">Episode 1</a><br> <a href="blue_2.rb">Episode 2</a><br> <a href="blue_3.rb">Episode 3</a> EOF elsif pt < 100 print(<<-"EOF") <br><br> ☆ ★ ☆ ★ ☆ ★ ☆ <br> Episode 1<br> Episode 2<br> Episode 3<br> EOF end when "white" if pt >= 100 && pt < 200 print(<<-"EOF") <br><br> ☆ ★ ☆ ★ ☆ ★ ☆ <br> <a href="white_1.rb">Episode 1</a> Episode 2<br> Episode 3<br> EOF elsif pt >= 560 print(<<-"EOF") <br><br> ☆ ★ ☆ ★ ☆ ★ ☆ <br> <a href="white_1.rb">Episode 1</a><br> <a href="white_2.rb">Episode 2</a><br> Episode 3<br> EOF elsif pt >= 450 print(<<-"EOF") <br><br> ☆ ★ ☆ ★ ☆ ★ ☆ <br> <a href="white_1.rb">Episode 1</a><br> <a href="white_2.rb">Episode 2</a><br> <a href="white_3.rb">Episode 3</a> EOF elsif pt < 100 print(<<-"EOF") <br><br> ☆ ★ ☆ ★ ☆ ★ ☆ <br> Episode 1<br> Episode 2<br> Episode 3<br> EOF end end #puts "<div class=\"box1\">" #printf("<img src=\"%s\">\n",image) puts " </form> </body> </html>"