jupyter_to_scrapbox 0.2.3 → 0.3.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 00557d02529304ed9e1d0d407a4179cd502c8dd0
4
- data.tar.gz: ac9024b8f8ab90f3740eab75997fd527d4d79bc1
3
+ metadata.gz: c2a95a898833b4c7826367ed7fb20ef55e124bec
4
+ data.tar.gz: '018d7296e0b3fac13362e97bdab26721c955a5f6'
5
5
  SHA512:
6
- metadata.gz: 75e11d33b41ddc01ff82f999dbf3c0dc404484901ccdd6632bae9612e3237b1bfe8ce9ab7479c5d298f4d51f798a876debefc8392f97e9a738196706567e8a70
7
- data.tar.gz: 32d6e6fc473d4c770319ce56a360b56f74234c71c84376c875dc3c7572a424a1edc1bfd49cfac3c3e0ca59c930ed2b546fb2f72b865aba7342ea480fd863ba60
6
+ metadata.gz: b4e942c580ea7479cae4a22da72352721b141f5735e049c2c5423fc27146b5dcb34c70eace69efedb1bd3bdefdb6ee54989719f1a7f0dcf29f21dd1256bd1aee
7
+ data.tar.gz: e42b3245e981c6f812fd7a68ef469e730d2efd2be209f6239a9cb1aab451c1a031ccd3809cd1273e5ab2feb2c28fbbe2348bda13d7724ef035d8671a2b56146c
data/README.md CHANGED
@@ -31,6 +31,10 @@ To import `scrapbox.json` to scrapbox, follow the instruction of "import pages"
31
31
 
32
32
  Specify `scrapbox.json` created by this tool.
33
33
 
34
+ In order to register inline images to GYAZO service (--image or -i option),
35
+ preset GYAZO's access token to the environment variable GYAZO_TOKEN.
36
+ Refer https://gyazo.com/api for acquiring GYAZO's access token in detail.
37
+
34
38
  ## Development
35
39
 
36
40
  After checking out the repo, run `bin/setup` to install dependencies. You can also run `bin/console` for an interactive prompt that will allow you to experiment.
@@ -24,5 +24,5 @@ Gem::Specification.new do |spec|
24
24
  spec.add_dependency "bundler", "~> 1.15"
25
25
  spec.add_dependency "rake", "~> 10.0"
26
26
  spec.add_dependency "thor"
27
-
27
+ spec.add_dependency "rest-client"
28
28
  end
data/lib/gyazo_ext.rb ADDED
@@ -0,0 +1,30 @@
1
+ # coding: utf-8
2
+
3
+ require 'JSON'
4
+ require 'gyazo'
5
+
6
+ module Gyazo
7
+
8
+ class Client
9
+
10
+ def upload_image(imagedata,params={})
11
+ url = "https://upload.gyazo.com/api/upload"
12
+ time = params[:time] || params[:created_at] || Time.now
13
+ res = HTTMultiParty.post url, {
14
+ :query => {
15
+ :access_token => @access_token,
16
+ :imagedata => imagedata,
17
+ :created_at => time.to_i,
18
+ :referer_url => params[:referer_url] || params[:url] || '',
19
+ :title => params[:title] || '',
20
+ :desc => params[:desc] || ''
21
+ },
22
+ :header => {
23
+ 'User-Agent' => @user_agent
24
+ }
25
+ }
26
+ raise Gyazo::Error, res.body unless res.code == 200
27
+ return JSON.parse res.body
28
+ end
29
+ end
30
+ end
@@ -1,3 +1,3 @@
1
1
  module JupyterToScrapbox
2
- VERSION = "0.2.3"
2
+ VERSION = "0.3.0"
3
3
  end
@@ -1,5 +1,36 @@
1
1
  require "jupyter_to_scrapbox/version"
2
+ require "rest-client"
2
3
  require "JSON"
4
+ require 'base64'
5
+
6
+ def register_image(vv)
7
+ f=Tempfile.new(['image','.png'],Dir.tmpdir,:binary => true)
8
+ f.write Base64.decode64(vv)
9
+ image_path=File.expand_path(f.to_path)
10
+ f.close(false)
11
+ vp image_path
12
+ vputs File.new(image_path, 'rb')
13
+ gyazo_url="https://upload.gyazo.com/api/upload"
14
+ begin
15
+ r = RestClient.post gyazo_url, {
16
+ "access_token" => ENV["GYAZO_TOKEN"],
17
+ :imagedata => File.new(image_path, 'rb')
18
+ }
19
+ return JSON.parse(r)
20
+ rescue => e
21
+ p e
22
+ puts e.backtrace
23
+ puts <<EOS
24
+ Failed to register image data.
25
+ - Be online.
26
+ - Set your ACCESS_TOKEN to the environment variable "GYAZO_TOKEN"
27
+ EOS
28
+ ensure
29
+ FileUtils.rm(image_path)
30
+ end
31
+ exit(1)
32
+ end
33
+
3
34
 
4
35
  module JupyterToScrapbox
5
36
  # Your code goes here...
@@ -9,8 +40,11 @@ module JupyterToScrapbox
9
40
  @@parse_markdown_notations=true
10
41
  @@converters=[]
11
42
 
43
+ def Converter.prepareGyazoclient()
44
+ end
45
+
12
46
  def Converter.set_verbose(v)
13
- @@verbose=v
47
+ bose=v
14
48
  end
15
49
 
16
50
  def Converter.set_register_images(v)
@@ -108,11 +142,14 @@ module JupyterToScrapbox
108
142
  end
109
143
 
110
144
  def parse_image_png(v)
111
- vputs v
145
+ vputs(v)
146
+
112
147
  push_text("code:output.txt")
113
148
  push_code("image/png")
114
149
  if @@register_images
115
- push_text(v)
150
+ r=register_image(v)
151
+ url=r["url"]
152
+ push_text( "["+url+"]" )
116
153
  end
117
154
  push_empty_text()
118
155
  end
@@ -206,6 +243,5 @@ module JupyterToScrapbox
206
243
  }
207
244
  return page
208
245
  end
209
-
210
246
  end
211
247
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: jupyter_to_scrapbox
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.3
4
+ version: 0.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Hiroharu Sugawara
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2017-07-28 00:00:00.000000000 Z
11
+ date: 2017-08-02 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -52,6 +52,20 @@ dependencies:
52
52
  - - ">="
53
53
  - !ruby/object:Gem::Version
54
54
  version: '0'
55
+ - !ruby/object:Gem::Dependency
56
+ name: rest-client
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - ">="
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
62
+ type: :runtime
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - ">="
67
+ - !ruby/object:Gem::Version
68
+ version: '0'
55
69
  description: convert jupyter-notebook files to scrapbox-import-ready-json
56
70
  email:
57
71
  - hsugawa@tmu.ac.jp
@@ -69,6 +83,7 @@ files:
69
83
  - exe/jupyter_to_scrapbox
70
84
  - jupyter_to_scrapbox.gemspec
71
85
  - lib/cli.rb
86
+ - lib/gyazo_ext.rb
72
87
  - lib/jupyter_to_scrapbox.rb
73
88
  - lib/jupyter_to_scrapbox/version.rb
74
89
  homepage: https://github.com/hsugawa8651/jupyter_to_scrapbox_gem