rabbit 3.0.0 → 3.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/Rakefile +2 -1
- data/data/locale/en/LC_MESSAGES/rabbit.mo +0 -0
- data/data/locale/ja/LC_MESSAGES/rabbit.mo +0 -0
- data/doc/_config.yml +2 -2
- data/doc/_layouts/skeleton.html +0 -7
- data/doc/en/faq.rd +4 -2
- data/doc/en/install/homebrew.rd +8 -13
- data/doc/en/news.rd +158 -0
- data/doc/en/sample/hiki/rabbit.hiki +0 -4
- data/doc/en/sample/rd/rabbit.rd +0 -4
- data/doc/en/usage/rabbit-slide.rd +3 -3
- data/doc/images/screenshots/en/blue-circle-raw.png +0 -0
- data/doc/images/screenshots/en/blue-circle.png +0 -0
- data/doc/images/screenshots/en/clear-blue-raw.png +0 -0
- data/doc/images/screenshots/en/clear-blue.png +0 -0
- data/doc/images/screenshots/en/cozmixng-raw.png +0 -0
- data/doc/images/screenshots/en/cozmixng.png +0 -0
- data/doc/images/screenshots/en/dark-gradation-raw.png +0 -0
- data/doc/images/screenshots/en/dark-gradation.png +0 -0
- data/doc/images/screenshots/en/day-white-raw.png +0 -0
- data/doc/images/screenshots/en/day-white.png +0 -0
- data/doc/images/screenshots/en/debian-raw.png +0 -0
- data/doc/images/screenshots/en/debian.png +0 -0
- data/doc/images/screenshots/en/green-circle-raw.png +0 -0
- data/doc/images/screenshots/en/green-circle.png +0 -0
- data/doc/images/screenshots/en/night-black-raw.png +0 -0
- data/doc/images/screenshots/en/night-black.png +0 -0
- data/doc/images/screenshots/en/rabbit-raw.png +0 -0
- data/doc/images/screenshots/en/rabbit.png +0 -0
- data/doc/images/screenshots/en/ranguba-raw.png +0 -0
- data/doc/images/screenshots/en/ranguba.png +0 -0
- data/doc/images/screenshots/en/red-frame-raw.png +0 -0
- data/doc/images/screenshots/en/red-frame.png +0 -0
- data/doc/images/screenshots/en/ruby-gnome2-raw.png +0 -0
- data/doc/images/screenshots/en/ruby-gnome2.png +0 -0
- data/doc/images/screenshots/en/rubykaigi2011-raw.png +0 -0
- data/doc/images/screenshots/en/rubykaigi2011.png +0 -0
- data/doc/images/screenshots/ja/blue-circle-raw.png +0 -0
- data/doc/images/screenshots/ja/blue-circle.png +0 -0
- data/doc/images/screenshots/ja/clear-blue-raw.png +0 -0
- data/doc/images/screenshots/ja/clear-blue.png +0 -0
- data/doc/images/screenshots/ja/cozmixng-raw.png +0 -0
- data/doc/images/screenshots/ja/cozmixng.png +0 -0
- data/doc/images/screenshots/ja/dark-gradation-raw.png +0 -0
- data/doc/images/screenshots/ja/dark-gradation.png +0 -0
- data/doc/images/screenshots/ja/day-white-raw.png +0 -0
- data/doc/images/screenshots/ja/day-white.png +0 -0
- data/doc/images/screenshots/ja/debian-raw.png +0 -0
- data/doc/images/screenshots/ja/debian.png +0 -0
- data/doc/images/screenshots/ja/green-circle-raw.png +0 -0
- data/doc/images/screenshots/ja/green-circle.png +0 -0
- data/doc/images/screenshots/ja/night-black-raw.png +0 -0
- data/doc/images/screenshots/ja/night-black.png +0 -0
- data/doc/images/screenshots/ja/rabbit-raw.png +0 -0
- data/doc/images/screenshots/ja/rabbit.png +0 -0
- data/doc/images/screenshots/ja/ranguba-raw.png +0 -0
- data/doc/images/screenshots/ja/ranguba.png +0 -0
- data/doc/images/screenshots/ja/red-frame-raw.png +0 -0
- data/doc/images/screenshots/ja/red-frame.png +0 -0
- data/doc/images/screenshots/ja/ruby-gnome2-raw.png +0 -0
- data/doc/images/screenshots/ja/ruby-gnome2.png +0 -0
- data/doc/images/screenshots/ja/rubykaigi2011-raw.png +0 -0
- data/doc/images/screenshots/ja/rubykaigi2011.png +0 -0
- data/doc/index.html.en +1 -1
- data/doc/ja/faq.rd +2 -0
- data/doc/ja/install/homebrew.rd +8 -12
- data/doc/ja/news.rd +157 -0
- data/doc/ja/sample/hiki/rabbit.hiki +0 -4
- data/doc/ja/sample/rd/rabbit.rd +0 -4
- data/doc/ja/usage/rabbit-slide.rd +3 -3
- data/doc/ja/users.rd +7 -0
- data/lib/rabbit/action/toggle.rb +7 -0
- data/lib/rabbit/author-configuration.rb +3 -4
- data/lib/rabbit/canvas.rb +18 -6
- data/lib/rabbit/command/rabbit-slide.rb +59 -1
- data/lib/rabbit/command/rabbit-slide.ui +127 -49
- data/lib/rabbit/command/rabbit.rb +5 -9
- data/lib/rabbit/element/base.rb +1 -5
- data/lib/rabbit/element/image.rb +139 -89
- data/lib/rabbit/element/video.rb +3 -11
- data/lib/rabbit/error.rb +9 -3
- data/lib/rabbit/formatter.rb +1 -1
- data/lib/rabbit/frame.rb +102 -4
- data/lib/rabbit/gem-pusher.rb +29 -6
- data/lib/rabbit/image/base.rb +163 -28
- data/lib/rabbit/image/dia.rb +21 -14
- data/lib/rabbit/image/mermaid.rb +73 -0
- data/lib/rabbit/image/pdf.rb +22 -9
- data/lib/rabbit/image/svg.rb +1 -4
- data/lib/rabbit/image.rb +6 -6
- data/lib/rabbit/info-window.rb +106 -80
- data/lib/rabbit/keys.rb +6 -0
- data/lib/rabbit/menu.rb +2 -0
- data/lib/rabbit/parser/base.rb +2 -1
- data/lib/rabbit/parser/ext/blockdiag.rb +16 -14
- data/lib/rabbit/parser/ext/charty.rb +58 -0
- data/lib/rabbit/parser/ext/image.rb +38 -10
- data/lib/rabbit/parser/markdown/converter.rb +36 -30
- data/lib/rabbit/parser/rd/ext/block-verbatim.rb +33 -35
- data/lib/rabbit/parser/rd/ext/image.rb +23 -4
- data/lib/rabbit/parser/rd/rd2rabbit-lib.rb +3 -1
- data/lib/rabbit/parser/rd.rb +1 -1
- data/lib/rabbit/parser/wiki/output.rb +9 -9
- data/lib/rabbit/parser.rb +2 -2
- data/lib/rabbit/progress.rb +1 -1
- data/lib/rabbit/properties.rb +154 -0
- data/lib/rabbit/rabbit.rb +3 -1
- data/lib/rabbit/relative-size.rb +28 -0
- data/lib/rabbit/renderer/base.rb +6 -0
- data/lib/rabbit/renderer/display/drawing-area-base.rb +1 -2
- data/lib/rabbit/renderer/display/drawing-area-primitive.rb +1 -0
- data/lib/rabbit/renderer/display/info.rb +6 -1
- data/lib/rabbit/renderer/display/key-handler.rb +27 -2
- data/lib/rabbit/renderer/engine/cairo.rb +24 -3
- data/lib/rabbit/renderer/screen.rb +0 -1
- data/lib/rabbit/slide-configuration.rb +16 -8
- data/lib/rabbit/task/slide.rb +6 -33
- data/lib/rabbit/theme/background-image-toolkit/background-image-toolkit.rb +38 -0
- data/lib/rabbit/theme/clear-blue/clear-blue.rb +4 -2
- data/lib/rabbit/theme/edge-info-toolkit/edge-info-toolkit.rb +12 -2
- data/lib/rabbit/theme/image/image.rb +3 -0
- data/lib/rabbit/theme/image-slide-number/image-slide-number.rb +8 -3
- data/lib/rabbit/theme/image-timer/image-timer.rb +8 -3
- data/lib/rabbit/theme/pdf/pdf.rb +1 -1
- data/lib/rabbit/theme/slide-footer-info/slide-footer-info.rb +2 -0
- data/lib/rabbit/theme/tag/tag.rb +9 -2
- data/lib/rabbit/theme-configuration.rb +3 -4
- data/lib/rabbit/utils.rb +25 -2
- data/lib/rabbit/version.rb +2 -2
- data/lib/rabbit/video-window.rb +14 -3
- data/{test/test-slideshare.rb → lib/rabbit/yaml-loader.rb} +20 -15
- data/po/en/rabbit.edit.po +123 -121
- data/po/en/rabbit.po +28 -26
- data/po/fr/rabbit.edit.po +122 -120
- data/po/fr/rabbit.po +27 -25
- data/po/ja/rabbit.edit.po +156 -125
- data/po/ja/rabbit.po +34 -30
- data/rabbit.gemspec +0 -1
- data/sample/can_rabbit.rd +0 -24
- data/sample/rabbit-en.hiki +0 -4
- data/sample/rabbit-en.md +13 -0
- data/sample/rabbit-en.rd +10 -4
- data/sample/rabbit.hiki +0 -4
- data/sample/rabbit.md +21 -0
- data/sample/rabbit.rd +20 -4
- data/test/command/test-rabbit.rb +1 -0
- data/test/parser/test-markdown.rb +2 -2
- data/test/test-slide-configuration.rb +4 -2
- metadata +30 -46
- data/doc/css/jquery-ui/themes/ui-lightness.css +0 -573
- data/doc/javascripts/jquery-ui.js +0 -11544
- data/doc/javascripts/jquery.js +0 -7179
- data/lib/rabbit/slideshare.rb +0 -192
data/lib/rabbit/slideshare.rb
DELETED
|
@@ -1,192 +0,0 @@
|
|
|
1
|
-
# Copyright (C) 2012-2016 Kouhei Sutou <kou@cozmixng.org>
|
|
2
|
-
#
|
|
3
|
-
# This program is free software; you can redistribute it and/or modify
|
|
4
|
-
# it under the terms of the GNU General Public License as published by
|
|
5
|
-
# the Free Software Foundation; either version 2 of the License, or
|
|
6
|
-
# (at your option) any later version.
|
|
7
|
-
#
|
|
8
|
-
# This program is distributed in the hope that it will be useful,
|
|
9
|
-
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
10
|
-
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
11
|
-
# GNU General Public License for more details.
|
|
12
|
-
#
|
|
13
|
-
# You should have received a copy of the GNU General Public License along
|
|
14
|
-
# with this program; if not, write to the Free Software Foundation, Inc.,
|
|
15
|
-
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
|
16
|
-
|
|
17
|
-
require "uri"
|
|
18
|
-
require "digest/sha1"
|
|
19
|
-
|
|
20
|
-
require "nokogiri"
|
|
21
|
-
require "faraday"
|
|
22
|
-
|
|
23
|
-
require "rabbit/gettext"
|
|
24
|
-
require "rabbit/command/rabbit"
|
|
25
|
-
require "rabbit/password-reader"
|
|
26
|
-
|
|
27
|
-
module Rabbit
|
|
28
|
-
module Task
|
|
29
|
-
class SlideShare
|
|
30
|
-
class Error < StandardError
|
|
31
|
-
end
|
|
32
|
-
|
|
33
|
-
include GetText
|
|
34
|
-
|
|
35
|
-
BASE_URL = "https://www.slideshare.net"
|
|
36
|
-
API_PATH_PREFIX = "/api/2"
|
|
37
|
-
API_KEY = "NB1B0IzS"
|
|
38
|
-
SHARED_SECRET = "iuTFlPzU"
|
|
39
|
-
|
|
40
|
-
attr_accessor :user, :pdf_path, :id, :title, :description, :tags
|
|
41
|
-
def initialize(logger)
|
|
42
|
-
@logger = logger
|
|
43
|
-
@user = nil
|
|
44
|
-
@pdf_path = nil
|
|
45
|
-
@id = nil
|
|
46
|
-
@title = nil
|
|
47
|
-
@description = nil
|
|
48
|
-
@tags = []
|
|
49
|
-
@connection = Faraday.new(:url => BASE_URL) do |builder|
|
|
50
|
-
builder.request :multipart
|
|
51
|
-
builder.request :url_encoded
|
|
52
|
-
builder.response :logger, @logger
|
|
53
|
-
builder.adapter :net_http
|
|
54
|
-
end
|
|
55
|
-
end
|
|
56
|
-
|
|
57
|
-
def upload
|
|
58
|
-
slideshow_id = nil
|
|
59
|
-
begin
|
|
60
|
-
slideshow_id = upload_slide
|
|
61
|
-
rescue Error
|
|
62
|
-
@logger.error(_("Feailed to upload: %s") % $!.message)
|
|
63
|
-
return nil
|
|
64
|
-
end
|
|
65
|
-
|
|
66
|
-
begin
|
|
67
|
-
edit_title(slideshow_id)
|
|
68
|
-
rescue Error
|
|
69
|
-
@logger.error(_("Feailed to edit title: %s") % $!.message)
|
|
70
|
-
return nil
|
|
71
|
-
end
|
|
72
|
-
|
|
73
|
-
url = nil
|
|
74
|
-
begin
|
|
75
|
-
url = slide_url(slideshow_id)
|
|
76
|
-
rescue Error
|
|
77
|
-
@logger.error(_("Feailed to get slide URL: %s") % $!.message)
|
|
78
|
-
return nil
|
|
79
|
-
end
|
|
80
|
-
url
|
|
81
|
-
end
|
|
82
|
-
|
|
83
|
-
private
|
|
84
|
-
def upload_slide
|
|
85
|
-
payload = {
|
|
86
|
-
:username => @user,
|
|
87
|
-
:password => password,
|
|
88
|
-
:slideshow_title => upload_title,
|
|
89
|
-
:slideshow_srcfile => Faraday::UploadIO.new(@pdf_path,
|
|
90
|
-
"application/pdf"),
|
|
91
|
-
:slideshow_description => @description,
|
|
92
|
-
:slideshow_tags => @tags.join(","),
|
|
93
|
-
}
|
|
94
|
-
response = post("upload_slideshow", payload)
|
|
95
|
-
parse_upload_slideshow_response(response)
|
|
96
|
-
end
|
|
97
|
-
|
|
98
|
-
def edit_title(slideshow_id)
|
|
99
|
-
payload = {
|
|
100
|
-
:username => @user,
|
|
101
|
-
:password => password,
|
|
102
|
-
:slideshow_id => slideshow_id,
|
|
103
|
-
:slideshow_title => @title,
|
|
104
|
-
}
|
|
105
|
-
response = get("edit_slideshow", payload)
|
|
106
|
-
parse_edit_slideshow_response(response)
|
|
107
|
-
end
|
|
108
|
-
|
|
109
|
-
def slide_url(slideshow_id)
|
|
110
|
-
payload = {
|
|
111
|
-
:slideshow_id => slideshow_id,
|
|
112
|
-
}
|
|
113
|
-
response = get("get_slideshow", payload)
|
|
114
|
-
parse_get_slideshow_response(response)
|
|
115
|
-
end
|
|
116
|
-
|
|
117
|
-
def prepare_payload(payload)
|
|
118
|
-
payload = common_payload.merge(payload)
|
|
119
|
-
payload.keys.each do |key|
|
|
120
|
-
payload.delete(key) if payload[key].nil?
|
|
121
|
-
end
|
|
122
|
-
payload
|
|
123
|
-
end
|
|
124
|
-
|
|
125
|
-
def get(command, payload)
|
|
126
|
-
@connection.get(api_url(command), prepare_payload(payload))
|
|
127
|
-
end
|
|
128
|
-
|
|
129
|
-
def post(command, payload)
|
|
130
|
-
@connection.post(api_url(command), prepare_payload(payload))
|
|
131
|
-
end
|
|
132
|
-
|
|
133
|
-
def api_url(command)
|
|
134
|
-
"#{API_PATH_PREFIX}/#{command}"
|
|
135
|
-
end
|
|
136
|
-
|
|
137
|
-
def upload_title
|
|
138
|
-
@id.gsub(/-/, " ")
|
|
139
|
-
end
|
|
140
|
-
|
|
141
|
-
def password
|
|
142
|
-
@password ||= read_password
|
|
143
|
-
end
|
|
144
|
-
|
|
145
|
-
def read_password
|
|
146
|
-
prompt = _("Enter password on SlideShare [%{user}]: ") % {:user => @user}
|
|
147
|
-
reader = PasswordReader.new(prompt)
|
|
148
|
-
reader.read
|
|
149
|
-
end
|
|
150
|
-
|
|
151
|
-
def common_payload
|
|
152
|
-
timestamp = Time.now.to_i.to_s
|
|
153
|
-
{
|
|
154
|
-
:api_key => API_KEY,
|
|
155
|
-
:ts => timestamp,
|
|
156
|
-
:hash => Digest::SHA1.hexdigest("#{SHARED_SECRET}#{timestamp}"),
|
|
157
|
-
}
|
|
158
|
-
end
|
|
159
|
-
|
|
160
|
-
def parse_response(http_response)
|
|
161
|
-
@logger.debug(http_response.body)
|
|
162
|
-
|
|
163
|
-
unless http_response.success?
|
|
164
|
-
raise Error, "#{http_response.status}\n#{http_response.body}"
|
|
165
|
-
end
|
|
166
|
-
|
|
167
|
-
response = Nokogiri::XML(http_response.body)
|
|
168
|
-
if response.root.name == "SlideShareServiceError"
|
|
169
|
-
message = response.root.elements[0]
|
|
170
|
-
raise Error, message
|
|
171
|
-
end
|
|
172
|
-
|
|
173
|
-
response
|
|
174
|
-
end
|
|
175
|
-
|
|
176
|
-
def parse_upload_slideshow_response(http_response)
|
|
177
|
-
response = parse_response(http_response)
|
|
178
|
-
response.xpath("/SlideShowUploaded/SlideShowID").text.to_i
|
|
179
|
-
end
|
|
180
|
-
|
|
181
|
-
def parse_edit_slideshow_response(http_response)
|
|
182
|
-
response = parse_response(http_response)
|
|
183
|
-
response.xpath("/SlideShowEdited/SlideShowID").text.to_i
|
|
184
|
-
end
|
|
185
|
-
|
|
186
|
-
def parse_get_slideshow_response(http_response)
|
|
187
|
-
response = parse_response(http_response)
|
|
188
|
-
response.xpath("/Slideshow/URL").text
|
|
189
|
-
end
|
|
190
|
-
end
|
|
191
|
-
end
|
|
192
|
-
end
|