Permalink
Browse files

add descritpion for jigoku mode.

  • Loading branch information...
1 parent 851f784 commit 4558898d7e3b743a1db8048e81028ab6c776bf53 @kou kou committed Dec 22, 2010
Showing with 90 additions and 62 deletions.
  1. +28 −7 app.rb
  2. +48 −0 public/nameplate.css
  3. +10 −0 views/description.erb
  4. +2 −1 views/index.erb
  5. +2 −54 views/user.erb
View
35 app.rb
@@ -42,6 +42,10 @@ def prefix
end
end
+def description
+ erb(:description).force_encoding("ascii-8bit")
+end
+
get '/' do
erb :index
end
@@ -243,6 +247,7 @@ def render_witticism(context, position, witticism, paper, margin, font)
context.move_to(witticism_x, witticism_y)
context.rotate(Math::PI / 2)
context.line_width = 10
+ context.line_join = :bevel
context.set_source_color(:white)
context.pango_layout_path(layout)
context.stroke
@@ -266,16 +271,18 @@ def render_to_surface_jigoku(surface, scale, paper, info, font)
pixbuf = load_pixbuf(info)
if pixbuf
context.save do
+ x_ratio = (paper.width - 10) / pixbuf.width.to_f
+ y_ratio = (paper.height - 10) / pixbuf.height.to_f
x_ratio = paper.width / pixbuf.width.to_f
y_ratio = paper.height / pixbuf.height.to_f
if x_ratio > y_ratio
- translate_x = (paper.width - pixbuf.width) / 2.0
- translate_y = 0
x_ratio = y_ratio
+ translate_x = (paper.width - pixbuf.width * x_ratio) / 2.0
+ translate_y = 0
else
- translate_x = 0
- translate_y = (paper.height - pixbuf.height) / 2.0
y_ratio = x_ratio
+ translate_x = 0
+ translate_y = (paper.height - pixbuf.height * y_ratio) / 2.0
end
context.translate(translate_x, translate_y)
context.scale(x_ratio, y_ratio)
@@ -289,7 +296,9 @@ def render_to_surface_jigoku(surface, scale, paper, info, font)
description = prepare_jigoku_description(info[:description])
right_witticism, left_witticism, garbages = description.split(/\n\n/, 3)
render_witticism(context, :right, right_witticism, paper, margin, font)
- render_witticism(context, :left, left_witticism, paper, margin, font)
+ if left_witticism
+ render_witticism(context, :left, left_witticism, paper, margin, font)
+ end
screen_name = info[:screen_name]
layout = make_layout(context,
@@ -299,8 +308,20 @@ def render_to_surface_jigoku(surface, scale, paper, info, font)
font) do |_layout|
_layout.alignment = :center
end
- context.move_to(margin, paper.height - layout.pixel_size[1] - margin)
- context.show_pango_layout(layout)
+ screen_name_x = margin
+ screen_name_y = paper.height - layout.pixel_size[1] - margin
+ context.save do
+ context.move_to(screen_name_x, screen_name_y)
+ context.line_width = 5
+ context.line_join = :bevel
+ context.set_source_color(:white)
+ context.pango_layout_path(layout)
+ context.stroke
+ end
+ context.save do
+ context.move_to(screen_name_x, screen_name_y)
+ context.show_pango_layout(layout)
+ end
context.show_page
end
View
@@ -0,0 +1,48 @@
+div.description p
+{
+ margin: 0;
+}
+
+div.description em
+{
+ background-color: red;
+ border: 1px solid blue;
+}
+
+div.description img.sample
+{
+ float: left;
+ padding-right: 10px;
+ padding-bottom: 10px;
+}
+
+div.note
+{
+ clear: both;
+ margin-bottom: 10px;
+}
+
+div.note p
+{
+ margin: 0;
+ font-size: smaller;
+ color: #ccc;
+}
+
+div.thumbnail
+{
+ float: left;
+ text-align: center;
+ width: 150px;
+ height: 250px;
+}
+
+a img
+{
+ border-style: none;
+}
+
+hr
+{
+ clear: both;
+}
View
@@ -0,0 +1,10 @@
+<% if jigoku? %>
+ <div class="description">
+ <p><img class="sample" src="sample/jigoku.png" alt="地獄のサンプル" /></p>
+ <p>名言にはTwitterの説明文を使います。Twitter側の情報は1日くらいキャッシュするので、説明文を変更してから生成してください。</p>
+ <p>空白を2文字入れたところで右側の名言と左側の名言が区切られます。</p>
+ <p>例: 「(カチャカチャカチャ…)<em>&nbsp;</em><em>&nbsp;</em>(ッターン!)」 </p>
+ <p>→ 右側の名言:「(カチャカチャカチャ…)」</p>
+ <p>→ 左側の名言:「(ッターン!)」</p>
+ </div>
+<% end %>
View
@@ -1,6 +1,7 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <link rel="stylesheet" href="nameplate.css" type="text/css" media="all" />
<title><%= prefix %>名札には名前を大きく書きましょうジェネレータ</title>
</head>
<body>
@@ -10,14 +11,14 @@
名札には名前を大きく書きましょう
</a>のような名札画像を生成する<%= prefix %>ジェネレータ。
</p>
-
<p>
<form action="./" method="post">
twitter ID:
<input type="text" name="user" />
<input type="submit" value="生成!" />
</form>
</p>
+<%= description %>
<hr />
<a href="http://twitter.com/kdmsnr" target="_blank">@kdmsnr</a> and
<a href="http://twitter.com/ktou" target="_blank">@ktou</a>.<br />
View
@@ -1,51 +1,8 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <link rel="stylesheet" href="nameplate.css" type="text/css" media="all" />
<title><%= prefix %>名札には名前を大きく書きましょうジェネレータ</title>
- <style>
-div.description
-{
- line-height: 80%;
-}
-
-div.description em
-{
- background-color: red;
- border: 1px solid blue;
-}
-
-div.description img.sample
-{
- float: left;
- padding-right: 10px;
-}
-
-div.note
-{
- font-size: smaller;
- color: #ccc;
- line-height: 80%;
- clear: both;
-}
-
-div.thumbnail
-{
- float: left;
- text-align: center;
- width: 150px;
- height: 250px;
-}
-
-a img
-{
- border-style: none;
-}
-
-hr
-{
- clear: both;
-}
- </style>
</head>
<body>
<h1><%= prefix %><a href="/">名札には名前を大きく書きましょうジェネレータ</a></h1>
@@ -57,16 +14,7 @@ hr
<input type="submit" value="生成!" />
</form>
</p>
-<% if jigoku? %>
- <div class="description">
- <p><img class="sample" src="sample/jigoku.png" alt="地獄のサンプル" /></p>
- <p>名言にはTwitterの説明文を使います。Twitter側の情報は1日くらいキャッシュするので、説明文を変更してから生成してください。</p>
- <p>空白を2文字入れたところで右側の名言と左側の名言が区切られます。</p>
- <p>例: 「(カチャカチャカチャ…)<em>&nbsp;</em><em>&nbsp;</em>(ッターン!)」 </p>
- <p>→ 右側の名言:「(カチャカチャカチャ…)」</p>
- <p>→ 左側の名言:「(ッターン!)」</p>
- </div>
-<% end %>
+<%= description %>
<div class="note">
<p>注意: アカウント情報は1日くらいキャッシュしています。Twitter側の名前の変更やプロフィール画像の変更は1日くらい反映されません。</p>
<p>(キャッシュしないとすぐにTwitter側から情報を取ってこれなくなるのです。)</p>

0 comments on commit 4558898

Please sign in to comment.