#!/usr/bin/env ruby
#-*- coding: utf-8 -*-
# tail -f /usr/local/apache2/logs/error_log
require 'sqlite3'
require 'cgi'
file = "../db/point.sq3"
c = CGI.new(:accept_charset => 'utf-8')
#PRAGMA foreign_keys = ON;
gin = c["sam"]
image = ""
lp = 0
# 前回のアクセスで既に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),"+"UNIQUE(id,keyword))" )
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)
db.execute("REPLACE INTO users VALUES(?, ?, ?)", id, form_name, gin) #ユーザーがどのキャラを選択したか
end
pt = 0 # 開始直後は0点
# SELECTの検索結果に値があるかは [0] が nil かどうかで判定できる
idol = db.execute("SELECT name FROM users WHERE id=?", gin)[0]
name = db.execute("SELECT name FROM users WHERE id=?", id)[0]
#qr_pt = db.execute("SELECT * FROM point 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)
<html lang="ja">
<head><title>アイキス!★ホーム</title>
<meta name="viewport" content="width=device-width, initial-scale=1" />
<script src="src/leaflet.js"></script>
EOF
#<link rel="stylesheet" href="src/leaflet.css" />
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コード探しにいこ! プロデューサー!!」</p>
</div>
EOF
when "blue"
print(<<-"EOF")
<div class="box1">
<img src="blue1.png">
<p>「よ、よろしくお願いします……!」
</p>
</div>
EOF
when "white"
print(<<-"EOF")
<div class="box1">
<img src="white1.png">
<p>
「多くのファンに私たちのライブ見てもらえるよう、頑張ります」
</p>
</div>
EOF
end
qr = ARGV[0]
point = nil
if ARGV[0] == "508568506962120147" #1つ目
point = "ID1"
elsif ARGV[0] =="381770736200286426" #二つ目
point = "ID2"
elsif ARGV[0] =="942515613567750545" #三つ目
point = "ID3"
elsif ARGV[0] =="849054474888775292" #四つ目
point = "ID4"
elsif ARGV[0] =="61520500659400819" #五つ目
point = "ID5"
elsif ARGV[0] =="528856582528717535" #六つ目
point = "ID6"
end
if point
db.execute("REPLACE INTO point VALUES(?, ?)", id, point)
#db.execute("REPLACE INTO point VALUES(?)", id)
end
r = db.execute("SELECT count(*) FROM point WHERE id=?", id)[0]
pt = (r ? r[0].to_i : 0)
lp = pt * 65
p pt
p lp
printf("<br>現在の獲得ファン数:%s<br>",lp)
if pt < 100
printf("次の話までの目標獲得ファン数:%s<br>",100-lp)
elsif pt < 200
printf("<br>次の話までの目標獲得ファン数:%s<br>",200-lp)
elsif pt < 560
printf("<br>次の話までの目標獲得ファン数:%s<br>",lp)
end
print(<<-"EOF")
◇ QRコードは全部で6種類あるよ!全て集めてみよう!◇
EOF
case gin
when "red"
if lp >= 100 && lp < 200
print(<<-"EOF")
<br><br>
☆ ★ ☆ ★ ☆ ★ ☆
<br>
<a href="red_1.rb">Episode 1</a>
Episode 2<br>
Episode 3<br>
EOF
elsif lp >= 200 && lp < 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 lp >= 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 lp < 100
print(<<-"EOF")
<br><br>
☆ ★ ☆ ★ ☆ ★ ☆
<br>
Episode 1<br>
Episode 2<br>
Episode 3<br>
EOF
end
when "blue"
if lp >= 100 && lp < 200
print(<<-"EOF")
<br><br>
☆ ★ ☆ ★ ☆ ★ ☆
<br>
<a href="blue_1.rb">Episode 1</a>
Episode 2<br>
Episode 3<br>
EOF
elsif lp >= 200 && lp < 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 lp >= 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 lp < 100
print(<<-"EOF")
<br><br>
☆ ★ ☆ ★ ☆ ★ ☆
<br>
Episode 1<br>
Episode 2<br>
Episode 3<br>
EOF
end
when "white"
if lp >= 100 && lp < 200
print(<<-"EOF")
<br><br>
☆ ★ ☆ ★ ☆ ★ ☆
<br>
<a href="white_1.rb">Episode 1</a>
Episode 2<br>
Episode 3<br>
EOF
elsif lp >= 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 lp >= 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 lp < 100
print(<<-"EOF")
<br><br>
☆ ★ ☆ ★ ☆ ★ ☆
<br>
Episode 1<br>
Episode 2<br>
Episode 3<br>
EOF
end
end
db.close
puts "
</form>
<h2>gps情報の取得</h2>
<script type=\"text/javascript\" src=\"idol.js\" charset=\"utf-8\"></script>
<form method=\"POST\" action=\"./db.cgi\">
<button id=\"get\" button type=\"button\">start</button>
<div id =\"geosa\">移動によるボーナスポイント:0</div>
<div id =\"txt\"></div>
<button id=\"js-sub\" type=\"button\">移動によるボーナスポイントを送信</button>
#puts \"<div class=\"box1\">\"
#printf(\"<img src=\"%s\">\n\",image)
</body>
</html>"