qiita_org 0.1.22 → 0.1.23

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
  SHA256:
3
- metadata.gz: e459de3b9e3d74b23c5c2942f2ee94aa98c462fb78576376a5873fd3259530f3
4
- data.tar.gz: 06270f5b069a681b6f250c45edc662bd9d0c804c4b309d6b403f0c8688398470
3
+ metadata.gz: beffdb8ca4472a742773b3f18ef4358be70621d887be94f0cc4d7db4bf703f4e
4
+ data.tar.gz: a9f1c37a7511ec9ed355c39f587511e96dac790b3be07198b54182f8ad94782b
5
5
  SHA512:
6
- metadata.gz: 20958f4bbd4da7c62eb40c820a36d9e21ee01da766313bae57a687fa79a691e1c299976e66a1dc62f2c6716d013f63ca41b1d062a67fa6798d0dd1ebb6e28fc9
7
- data.tar.gz: fb22b876db34b3ce2740864fbd8a20bd6cf3815eb49d727ca430f515074f6339ac43e208b8635081113ec7052cf196fcb74554b8d6285d22487d46ed2b96c2bc
6
+ metadata.gz: 9b5a5ae877e5c0329f15285cc5de0e9382b485204825e4ecdd3a2c6234e9ee9c9b3bc108f867743ee8795672e8ae302085073e32455f600aee9be71b0c627195
7
+ data.tar.gz: cdba09e7aee71b7c21b6897e6131bad6013213abc91a407a5a6f0ce2d34125e1331755d7c7935fa5de11168c97e2674200370bb7bb0dfb99b9601052001ed690
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- qiita_org (0.1.20)
4
+ qiita_org (0.1.23)
5
5
  colorize
6
6
  command_line (> 2.0.0)
7
7
  fileutils
@@ -9,6 +9,7 @@ require "qiita_org/get"
9
9
  require "qiita_org/list"
10
10
  require "qiita_org/get_template"
11
11
  require "qiita_org/check_pc_os"
12
+ require "qiita_org/upload"
12
13
  require "qiita_org/get_file_path"
13
14
  require "qiita_org/show_file_and_url"
14
15
  require "qiita_org/decide_option"
@@ -57,8 +58,10 @@ module QiitaOrg
57
58
  os = checkos.return_os()
58
59
 
59
60
  p file = argv[0] || "README.org"
60
- p mode = argv[1] || "private"
61
+ p mode = argv[1] || DecideOption.new(file).decide_option()
61
62
 
63
+ UpLoad.new(file, mode, os).upload()
64
+ =begin
62
65
  getpath = GetFilePath.new(file)
63
66
  paths = getpath.get_file_path()
64
67
  unless paths.empty?
@@ -73,6 +76,7 @@ module QiitaOrg
73
76
  showfile.input_url_to_org()
74
77
  end
75
78
  end
79
+ =end
76
80
  end
77
81
 
78
82
  desc "config [global/local] [option] [input]", "set config"
@@ -100,10 +104,10 @@ module QiitaOrg
100
104
  checkos = CheckPcOs.new
101
105
  os = checkos.return_os()
102
106
 
103
- template = QiitaGetTemplate.new(os)
107
+ template = QiitaGetTemplate.new(os).run()
104
108
  end
105
109
 
106
- desc "all", "post all org file in the directory"
110
+ desc "all", "post all org files in the directory"
107
111
 
108
112
  def all(*argv)
109
113
  Dir.glob("*.org").each do |org|
@@ -1,7 +1,7 @@
1
1
  {
2
- "name": "",
3
- "email": "",
4
- "access_token": "",
5
- "teams_url": "",
6
- "ox_qmd_load_path": "~/.emacs.d/site_lisp/ox-qmd"
7
- }
2
+ "name": "",
3
+ "email": "",
4
+ "access_token": "",
5
+ "teams_url": "",
6
+ "ox_qmd_load_path": "~/.emacs.d/site_lisp/ox-qmd"
7
+ }
@@ -0,0 +1,31 @@
1
+ require "colorize"
2
+ require "qiita_org/error_message.rb"
3
+
4
+ class AccessQiita
5
+ def initialize(access_token, qiita, path)
6
+ @access_token = access_token
7
+ @qiita = qiita
8
+ @path = path
9
+ end
10
+
11
+ def access_qiita()
12
+ uri = URI.parse(@qiita + @path)
13
+
14
+ headers = { "Authorization" => "Bearer #{@access_token}",
15
+ "Content-Type" => "application/json" }
16
+
17
+ begin
18
+ response = URI.open(
19
+ "#{uri}",
20
+ "Authorization" => "#{headers["Authorization"]}",
21
+ )
22
+ rescue => e
23
+ #puts "#{$!}".red
24
+ #exit
25
+ ErrorMessage.new().qiita_access_error(e)
26
+ else
27
+ items = JSON.parse(response.read)
28
+ return items
29
+ end
30
+ end
31
+ end
@@ -7,8 +7,12 @@ class DecideOption
7
7
  lines = File.readlines(@src)
8
8
 
9
9
  lines.each do |line|
10
- if line.match(/\#\+qiita_(.+): (.+)/)
11
- option = line.match(/\#\+qiita_(.+): (.+)/)[1]
10
+ m = []
11
+ if m = line.match(/\#\+qiita_(.+): (.+)/)
12
+ option = m[1] #line.match(/\#\+qiita_(.+): (.+)/)[1]
13
+ unless option == "public" || option == "teams" || option == "private"
14
+ next
15
+ end
12
16
  return option
13
17
  end
14
18
  end
@@ -0,0 +1,90 @@
1
+ require "colorize"
2
+ require "json"
3
+
4
+ class ErrorMessage
5
+ def initialize()
6
+ end
7
+
8
+ def access_token_error(access_token)
9
+ if access_token == ""
10
+ puts "Please setting ACCESS_TOKEN".red
11
+ exit
12
+ end
13
+ end
14
+
15
+ def teams_url_error(teams_url)
16
+ if teams_url == ""
17
+ puts "Please setting teams_url".red
18
+ exit
19
+ end
20
+ end
21
+
22
+ def qiita_access_error(e)
23
+ puts "#{$!}".red
24
+ exit
25
+ end
26
+
27
+ def qiita_post_error(response)
28
+ message = response.message
29
+ if message != "Created"
30
+ if message != "OK"
31
+ if message == "Unauthorized"
32
+ puts "#{message}".red
33
+ puts "Please check your access_token.".red
34
+ exit
35
+ elsif message == "Forbidden"
36
+ puts "#{message}".red
37
+ puts "You are not authorized to access this page. please check qiita_id.".red
38
+ exit
39
+ elsif message == "Not Found"
40
+ puts "#{message}".red
41
+ exit
42
+ else
43
+ puts "#{message}".red
44
+ exit
45
+ end
46
+ end
47
+ end
48
+ end
49
+
50
+ def config_set_error(conf_dir)
51
+ conf_path = File.join(conf_dir, ".qiita.conf")
52
+ conf = JSON.load(File.read(conf_path))
53
+ check = true
54
+
55
+ if conf["name"] == ""
56
+ puts "Please set your name in config".red
57
+ puts "Hint: qiita config global name 'YOUR NAME'".red
58
+ puts "Hint: qiita config local name 'YOUR NAME'".red
59
+ # system "rm template.org"
60
+ check = false
61
+ end
62
+
63
+ if conf["email"] == ""
64
+ puts "Please set your email in config".red
65
+ puts "Hint: qiita config global email 'youremail@example.com'".red
66
+ puts "Hint: qiita config local name 'youremail@example.com'".red
67
+ check = false
68
+ end
69
+ unless check
70
+ exit
71
+ end
72
+ end
73
+
74
+ def md_file_exists?(src, res)
75
+ unless File.exists?(src.gsub(".org", ".md"))
76
+ puts "Can not make #{src.gsub(".org", ".md")}".red
77
+ puts "Please confirm emacs version.".red
78
+ exit
79
+ else
80
+ p res
81
+ end
82
+ end
83
+
84
+ def many_tags_error(tags)
85
+ if tags.count(",") >= 5
86
+ puts "The maximum number of tag is five. Please delete some tags.".red
87
+ exit
88
+ end
89
+ end
90
+ end
@@ -0,0 +1,15 @@
1
+ class FileOpen
2
+ def initialize(os)
3
+ @os = os
4
+ end
5
+
6
+ def file_open(order)
7
+ if @os == "mac"
8
+ system "open #{order}"
9
+ elsif @os == "windows"
10
+ system "explorer.exe #{order}"
11
+ else
12
+ system "xdg-open #{order}"
13
+ end
14
+ end
15
+ end
@@ -3,56 +3,55 @@ require "json"
3
3
  require "open-uri"
4
4
  require "io/console"
5
5
  require "colorize"
6
- require "qiita_org/search_conf_path.rb"
6
+ require "qiita_org/select_path.rb"
7
+ require "qiita_org/set_config.rb"
8
+ require "qiita_org/error_message.rb"
9
+ require "qiita_org/access_qiita.rb"
7
10
 
8
11
  class QiitaGet
9
12
  def initialize(mode, id)
10
13
  @mode = mode
11
14
  @get_id = id
12
- search = SearchConfPath.new(Dir.pwd, Dir.home)
13
- @conf_dir = search.search_conf_path()
14
- end
15
-
16
- # set config
17
- def set_config()
18
- conf_path = File.join(@conf_dir, ".qiita.conf")
19
- conf = JSON.load(File.read(conf_path))
20
- @access_token = conf["access_token"]
21
- @teams_url = conf["teams_url"]
15
+ @selectpath = SelectPath.new()
22
16
  end
23
17
 
24
18
  # select path
25
- def select_path()
26
- case @mode
19
+ =begin
20
+ def select_path(mode)
21
+ case mode
27
22
  when "teams"
28
- @qiita = @teams_url
29
- @path = "api/v2/items?page=1&per_page=100"
23
+ qiita = @teams_url
24
+ path = "api/v2/items?page=1&per_page=100"
30
25
  else
31
- @qiita = "https://qiita.com/"
32
- @path = "api/v2/authenticated_user/items?page=1&per_page=100"
26
+ qiita = "https://qiita.com/"
27
+ path = "api/v2/authenticated_user/items?page=1&per_page=100"
33
28
  end
29
+ return qiita, path
34
30
  end
31
+ =end
35
32
 
36
33
  # access qiita
34
+ =begin
37
35
  def access_qiita()
38
36
  uri = URI.parse(@qiita + @path)
39
37
 
40
- headers = { "Authorization" => "Bearer #{@access_token}",
38
+ headers = { "Authorization" => "Bearer # {@access_token}",
41
39
  "Content-Type" => "application/json" }
42
40
 
43
41
  begin
44
42
  response = URI.open(
45
- "#{uri}",
46
- "Authorization" => "#{headers["Authorization"]}",
43
+ "# {uri}",
44
+ "Authorization" => "# {headers["Authorization"]}",
47
45
  )
48
46
  #raise "NOT FOUND: # {@get_id} report".red
49
47
  rescue => e
50
- puts "#{$!}".red
48
+ puts "# {$!}".red
51
49
  exit
52
50
  else
53
51
  @items = JSON.parse(response.read)
54
52
  end
55
53
  end
54
+ =end
56
55
 
57
56
  # select report
58
57
  def select_report()
@@ -141,7 +140,8 @@ EOS
141
140
  end
142
141
  @path = "api/v2/items/#{@get_id}"
143
142
 
144
- access_qiita()
143
+ @items = AccessQiita.new(@access_token, @qiita, @path).access_qiita()
144
+ #access_qiita()
145
145
 
146
146
  @title = @items["title"]
147
147
  @id = @items["id"]
@@ -159,10 +159,14 @@ EOS
159
159
  end
160
160
 
161
161
  def run()
162
- set_config()
162
+ @access_token, @teams_url, @ox_qmd_load_path = SetConfig.new().set_config()
163
+ if @mode == "teams"
164
+ ErrorMessage.new().teams_url_error(@teams_url)
165
+ end
166
+
163
167
  if @get_id == nil
164
- select_path()
165
- access_qiita()
168
+ @qiita, @path = @selectpath.select_path(@mode)
169
+ @items = AccessQiita.new(@access_token, @qiita, @path).access_qiita()
166
170
  select_report()
167
171
  else
168
172
  get_id_report()
@@ -3,30 +3,26 @@ require "json"
3
3
  require "open-uri"
4
4
  require "io/console"
5
5
  require "colorize"
6
- require "qiita_org/search_conf_path.rb"
6
+ require "qiita_org/set_config.rb"
7
+ require "qiita_org/error_message.rb"
8
+ require "qiita_org/access_qiita.rb"
7
9
 
8
10
  class GetFileUrl
9
11
  def initialize(id, file, mode)
10
12
  @id = id
11
13
  @file = file
12
14
  @mode = (mode == "qiita" || mode == "open")? "public" : mode
13
- search = SearchConfPath.new(Dir.pwd, Dir.home)
14
- @conf_dir = search.search_conf_path()
15
- set_config()
16
- end
17
-
18
- def set_config()
19
- conf_path = File.join(@conf_dir, ".qiita.conf")
20
- @conf = JSON.load(File.read(conf_path))
21
- @access_token = @conf["access_token"]
22
- @teams_url = @conf["teams_url"]
15
+ @access_token, @teams_url, @ox_qmd_load_path = SetConfig.new().set_config()
16
+ if @mode == "teams"
17
+ ErrorMessage.new().teams_url_error(@teams_url)
18
+ end
23
19
  end
24
20
 
25
21
  def get_file_url()
26
22
  qiita = (@mode == "teams")? @teams_url : "https://qiita.com/"
27
23
  path = "api/v2/items/#{@id}"
28
24
 
29
- items = access_qiita(@access_token, qiita, path)
25
+ items = AccessQiita.new(@access_token, qiita, path).access_qiita()
30
26
 
31
27
  file_url = items["body"].match(/\!\[#{@file}\]\(((.+))\)/)[2]
32
28
  return file_url
@@ -34,6 +30,7 @@ class GetFileUrl
34
30
  #File.write("url_text.md", items["body"])
35
31
  end
36
32
 
33
+ =begin
37
34
  def access_qiita(access_token, qiita, path)
38
35
  uri = URI.parse(qiita + path)
39
36
 
@@ -41,10 +38,11 @@ class GetFileUrl
41
38
  "Content-Type" => "application/json" }
42
39
 
43
40
  response = URI.open(
44
- "#{uri}",
45
- "Authorization" => "#{headers["Authorization"]}",
41
+ "# {uri}",
42
+ "Authorization" => "# {headers["Authorization"]}",
46
43
  )
47
44
  items = JSON.parse(response.read)
48
45
  return items
49
46
  end
47
+ =end
50
48
  end
@@ -2,16 +2,14 @@ require "fileutils"
2
2
  require "colorize"
3
3
  require "kconv"
4
4
  require "qiita_org/search_conf_path"
5
+ require "qiita_org/error_message.rb"
5
6
 
6
7
  class QiitaGetTemplate
7
8
  def initialize(os)
8
9
  @os = os
9
- cp_template()
10
10
  search = SearchConfPath.new(Dir.pwd, Dir.home)
11
11
  @conf_dir = search.search_conf_path()
12
- set_name_and_email()
13
12
  # check_write_header()
14
- check_write_contents()
15
13
  end
16
14
 
17
15
  def get_macos_version()
@@ -143,4 +141,11 @@ class QiitaGetTemplate
143
141
  conts[4] = "#+EMAIL: (concat \"#{email}\")\n"
144
142
  File.write("template.org", conts.join)
145
143
  end
144
+
145
+ def run()
146
+ ErrorMessage.new().config_set_error(@conf_dir)
147
+ cp_template()
148
+ set_name_and_email()
149
+ check_write_contents()
150
+ end
146
151
  end
@@ -2,27 +2,26 @@ require "net/https"
2
2
  require "json"
3
3
  require "open-uri"
4
4
  require "colorize"
5
- require "qiita_org/search_conf_path.rb"
5
+ require "qiita_org/select_path.rb"
6
+ require "qiita_org/set_config.rb"
7
+ require "qiita_org/error_message.rb"
8
+ require "qiita_org/access_qiita.rb"
6
9
 
7
10
  class QiitaList
8
11
  def initialize(mode)
9
12
  @mode = mode
10
- search = SearchConfPath.new(Dir.pwd, Dir.home)
11
- @conf_dir = search.search_conf_path()
12
- set_config()
13
- select_path()
14
- access_qiita()
15
- view_list()
16
- end
13
+ @access_token, @teams_url, @ox_qmd_load_path = SetConfig.new().set_config()
14
+ if @mode == "teams"
15
+ ErrorMessage.new().teams_url_error(@teams_url)
16
+ end
17
17
 
18
- def set_config()
19
- conf_path = File.join(@conf_dir, ".qiita.conf")
20
- conf = JSON.load(File.read(conf_path))
21
- @access_token = conf["access_token"]
22
- @teams_url = conf["teams_url"]
18
+ @qiita, @path = SelectPath.new().select_path(@mode)
19
+ @items = AccessQiita.new(@access_token, @qiita, @path).access_qiita()
20
+ view_list()
23
21
  end
24
22
 
25
23
  # select path
24
+ =begin
26
25
  def select_path()
27
26
  case @mode
28
27
  when "teams"
@@ -33,20 +32,23 @@ class QiitaList
33
32
  @path = "api/v2/authenticated_user/items?page=1&per_page=100"
34
33
  end
35
34
  end
35
+ =end
36
36
 
37
37
  # access qiita
38
+ =begin
38
39
  def access_qiita()
39
40
  uri = URI.parse(@qiita + @path)
40
41
 
41
- headers = { "Authorization" => "Bearer #{@access_token}",
42
+ headers = { "Authorization" => "Bearer # {@access_token}",
42
43
  "Content-Type" => "application/json" }
43
44
 
44
45
  response = URI.open(
45
- "#{uri}",
46
- "Authorization" => "#{headers["Authorization"]}",
46
+ "# {uri}",
47
+ "Authorization" => "# {headers["Authorization"]}",
47
48
  )
48
49
  @items = JSON.parse(response.read)
49
50
  end
51
+ =end
50
52
 
51
53
  def view_list()
52
54
  @items.each do |item|
@@ -1,25 +1,25 @@
1
1
  class MdConverter
2
- def initialize(lines)
3
- @lines = lines
2
+ def initialize()
3
+ # @lines = lines
4
4
  end
5
5
 
6
- def convert_for_image()
7
- @lines.each_with_index do |line, i|
6
+ def convert_for_image(lines)
7
+ lines.each_with_index do |line, i|
8
8
  m = []
9
9
  if m = line.match(/\[\!\[img\]\((.+) "(.+)"\)\]\((.+)\)/)
10
10
  path = File.basename(m[1])
11
11
  url = m[3]
12
- @lines[i] = "![#{path}](#{url})\n"
12
+ lines[i] = "![#{path}](#{url})\n"
13
13
  elsif m = line.match(/\[\!\[img\]\((.+)\)\]\((.+)\)/)
14
14
  path = File.basename(m[1])
15
15
  url = m[2]
16
- @lines[i] = "![#{path}](#{url})\n"
16
+ lines[i] = "![#{path}](#{url})\n"
17
17
  else
18
18
  next
19
19
  end
20
20
  end
21
21
 
22
- return @lines
22
+ return lines
23
23
  end
24
24
  end
25
25
 
@@ -4,29 +4,28 @@ require "net/https"
4
4
  require "json"
5
5
  require "command_line/global"
6
6
  require "colorize"
7
- require "qiita_org/search_conf_path.rb"
8
7
  require "qiita_org/md_converter_for_image"
8
+ require "qiita_org/set_config.rb"
9
+ require "qiita_org/error_message"
10
+ require "qiita_org/file_open.rb"
9
11
 
10
12
  class QiitaPost
11
13
  def initialize(file, option, os)
12
14
  @src = file
13
15
  @option = (option == "qiita" || option == "open")? "public" : option
14
16
  @os = os
15
- search = SearchConfPath.new(Dir.pwd, Dir.home)
16
- @conf_dir = search.search_conf_path()
17
- p @conf_dir
18
17
  end
19
18
 
20
19
  public
21
- def get_title_tags()
22
- @conts = File.read(@src)
23
- m = @conts.match(/\#\+(TITLE|title|Title): (.+)/)
20
+ def get_title_tags(conts)
21
+ m = conts.match(/\#\+(TITLE|title|Title): (.+)/)
24
22
  @title = m ? m[2] : "テスト"
25
- @tags = if m = @conts.match(/\#\+(TAG|tag|Tag|tags|TAGS|Tags): (.+)/)
26
- if m[2].count(",") >= 5
27
- puts "The maximum number of tag is five. Please delete some tags.".red
28
- exit
29
- end
23
+ @tags = if m = conts.match(/\#\+(TAG|tag|Tag|tags|TAGS|Tags): (.+)/)
24
+ #if m[2].count(",") >= 5
25
+ # puts "The maximum number of tag is five. Please delete some tags.".red
26
+ #exit
27
+ #end
28
+ ErrorMessage.new().many_tags_error(m[2])
30
29
  m[2].split(",").inject([]) do |l, c|
31
30
  l << { name: c.strip } #, versions: []}
32
31
  end
@@ -34,22 +33,15 @@ class QiitaPost
34
33
  [{ name: "hoge" }] #, versions: [] }]
35
34
  end
36
35
  p @tags
37
- end
38
-
39
- def set_config()
40
- conf_path = File.join(@conf_dir, ".qiita.conf")
41
- @conf = JSON.load(File.read(conf_path))
42
- @access_token = @conf["access_token"]
43
- @teams_url = @conf["teams_url"]
44
- lib = File.expand_path("../../../lib", __FILE__)
45
- @ox_qmd_load_path = File.join(lib, "qiita_org", "ox-qmd", "ox-qmd") # @conf["ox_qmd_load_path"]
36
+ return @title, @tags
46
37
  end
47
38
 
48
39
  # src.org -> src.md
49
40
  def convert_org_to_md()
50
41
  command = "emacs #{@src} --batch -l #{@ox_qmd_load_path} -f org-qmd-export-to-markdown --kill"
51
42
  res = command_line command
52
- p res
43
+ #p res
44
+ ErrorMessage.new().md_file_exists?(@src, res)
53
45
  end
54
46
 
55
47
  # add source path in md
@@ -60,15 +52,16 @@ class QiitaPost
60
52
  end
61
53
 
62
54
  # patch or post selector by qiita_id
63
- def select_patch_or_post()
55
+ def select_patch_or_post(conts, option)
64
56
  m = []
65
- @patch = false
66
- if m = @conts.match(/\#\+qiita_#{@option}: (.+)/)
67
- @qiita_id = m[1]
68
- @patch = true
57
+ patch = false
58
+ if m = conts.match(/\#\+qiita_#{option}: (.+)/)
59
+ qiita_id = m[1]
60
+ patch = true
69
61
  else
70
- @qiita_id = ""
62
+ qiita_id = ""
71
63
  end
64
+ return qiita_id, patch
72
65
  end
73
66
 
74
67
  def select_option(option)
@@ -110,11 +103,16 @@ class QiitaPost
110
103
 
111
104
  headers = { "Authorization" => "Bearer #{@access_token}",
112
105
  "Content-Type" => "application/json" }
106
+
113
107
  if @patch
114
- @res = http_req.patch(uri.path, params.to_json, headers)
108
+ res = http_req.patch(uri.path, params.to_json, headers)
115
109
  else
116
- @res = http_req.post(uri.path, params.to_json, headers)
110
+ res = http_req.post(uri.path, params.to_json, headers)
117
111
  end
112
+
113
+ ErrorMessage.new().qiita_post_error(res)
114
+
115
+ return res
118
116
  end
119
117
 
120
118
  # qiita return
@@ -140,29 +138,38 @@ class QiitaPost
140
138
  end
141
139
 
142
140
  # open qiita
141
+ =begin
143
142
  def open_qiita()
144
143
  if @os == "mac"
145
- system "open #{@res_body["url"]}"
144
+ system "open # {@res_body["url"]}"
146
145
  elsif @os == "windows"
147
- system "explorer.exe #{@res_body["url"]}"
146
+ system "explorer.exe # {@res_body["url"]}"
148
147
  else
149
- system "open #{@res_body["url"]}"
150
- system "xdg-open #{@res_body["url"]}"
148
+ system "open # {@res_body["url"]}"
149
+ system "xdg-open # {@res_body["url"]}"
151
150
  end
152
151
  end
152
+ =end
153
153
 
154
154
  def run()
155
- get_title_tags()
156
- set_config()
155
+ @conts = File.read(@src)
156
+ @title, @tags = get_title_tags(@conts)
157
+ @access_token, @teams_url, @ox_qmd_load_path = SetConfig.new().set_config()
158
+
159
+ if @option == "teams"
160
+ ErrorMessage.new().teams_url_error(@teams_url)
161
+ end
162
+
157
163
  convert_org_to_md()
158
164
  add_source_path_in_md()
159
- @lines = MdConverter.new(@lines).convert_for_image()
160
- select_patch_or_post()
165
+ @lines = MdConverter.new().convert_for_image(@lines)
166
+ @qiita_id, @patch = select_patch_or_post(@conts, @option)
161
167
  @qiita, @private = select_option(@option)
162
- qiita_post()
168
+ @res = qiita_post()
163
169
  get_and_print_qiita_return()
164
170
 
165
- open_qiita()
171
+ #open_qiita()
172
+ FileOpen.new(@os).file_open(@res_body["url"])
166
173
 
167
174
  add_qiita_id_on_org()
168
175
 
@@ -2,7 +2,7 @@ class SearchConfPath
2
2
  def initialize(dir, home)
3
3
  @dir = dir
4
4
  @home = home
5
- search_conf_path()
5
+ #search_conf_path()
6
6
  end
7
7
 
8
8
  def search_conf_path()
@@ -0,0 +1,16 @@
1
+ class SelectPath
2
+ def initialize()
3
+ end
4
+
5
+ def select_path(mode)
6
+ case mode
7
+ when "teams"
8
+ qiita = @teams_url
9
+ path = "api/v2/items?page=1&per_page=100"
10
+ else
11
+ qiita = "https://qiita.com/"
12
+ path = "api/v2/authenticated_user/items?page=1&per_page=100"
13
+ end
14
+ return qiita, path
15
+ end
16
+ end
@@ -0,0 +1,29 @@
1
+ require "qiita_org/search_conf_path.rb"
2
+ require "qiita_org/error_message.rb"
3
+
4
+ class SetConfig
5
+ def initialize()
6
+ search = SearchConfPath.new(Dir.pwd, Dir.home)
7
+ @lib = File.expand_path("../../../lib", __FILE__)
8
+ @conf_dir = search.search_conf_path()
9
+ if @conf_dir != Dir.home
10
+ puts "config file path: #{@conf_dir.gsub(Dir.home, "~")}".green
11
+ else
12
+ puts "config file path: #{@conf_dir}"
13
+ end
14
+ end
15
+
16
+ def set_config()
17
+ conf_path = File.join(@conf_dir, ".qiita.conf")
18
+ conf = JSON.load(File.read(conf_path))
19
+ access_token = conf["access_token"]
20
+ teams_url = conf["teams_url"]
21
+ ox_qmd_load_path = File.join(@lib, "qiita_org", "ox-qmd", "ox-qmd")
22
+
23
+ ErrorMessage.new().access_token_error(access_token) #== false
24
+ # puts "Please setting ACCESS_TOKEN".red
25
+ # exit
26
+
27
+ return access_token, teams_url, ox_qmd_load_path
28
+ end
29
+ end
@@ -1,47 +1,47 @@
1
1
  require "colorize"
2
2
  require "qiita_org/get_file_url.rb"
3
+ require "qiita_org/set_config.rb"
4
+ require "qiita_org/access_qiita.rb"
5
+ require "qiita_org/file_open.rb"
3
6
 
4
7
  class ShowFile
5
8
  def initialize(paths, src, mode, os)
6
9
  @paths = paths
7
10
  @src = src
8
- @mode = (mode == "qiita" || mode == "open")? "public" : mode
11
+ @mode = (mode == "qiita" || mode == "open") ? "public" : mode
9
12
  @os = os
10
- search = SearchConfPath.new(Dir.pwd, Dir.home)
11
- @conf_dir = search.search_conf_path()
12
- end
13
-
14
- def set_config()
15
- conf_path = File.join(@conf_dir, ".qiita.conf")
16
- @conf = JSON.load(File.read(conf_path))
17
- @access_token = @conf["access_token"]
18
- @teams_url = @conf["teams_url"]
13
+ @fileopen = FileOpen.new(@os)
19
14
  end
20
15
 
21
16
  def open_file_dir()
22
17
  previous_paths = []
23
18
  previous_paths << File.join(@paths[0].split("/")[0..-2])
24
- if @os == "mac"
25
- system "open #{File.join(@paths[0].split("/")[0..-2])}"
26
- elsif @os == "windows"
27
- system "explorer.exe #{File.join(@paths[0].split("/")[0..-2])}"
28
- else
29
- system "open #{File.join(@paths[0].split("/")[0..-2])}"
30
- system "xdg-open #{File.join(@paths[0].split("/")[0..-2])}"
31
- end
19
+ @fileopen.file_open(File.join(@paths[0].split("/")[0..-2]))
20
+
21
+ # if @os == "mac"
22
+ # system "open # {File.join(@paths[0].split("/")[0..-2])}"
23
+ # elsif @os == "windows"
24
+ # system "explorer.exe # {File.join(@paths[0].split("/")[0..-2])}"
25
+ # else
26
+ # system "open # {File.join(@paths[0].split("/")[0..-2])}"
27
+ # system "xdg-open # {File.join(@paths[0].split("/")[0..-2])}"
28
+ # end
29
+
32
30
  @paths.each do |path|
33
31
  dir_path = File.join(path.split("/")[0..-2])
34
32
  unless previous_paths.include?(dir_path)
35
33
  previous_paths << dir_path
36
- #system "open #{dir_path}"
37
- if @os == "mac"
38
- system "open #{dir_path}"
39
- elsif @os == "windows"
40
- system "explorer.exe #{dir_path}"
41
- else
42
- system "open #{dir_path}"
43
- system "xdg-open #{dir_path}"
44
- end
34
+ #system "open # {dir_path}"
35
+ @fileopen.file_open(dir_path)
36
+
37
+ # if @os == "mac"
38
+ # system "open # {dir_path}"
39
+ # elsif @os == "windows"
40
+ # system "explorer.exe # {dir_path}"
41
+ # else
42
+ # system "open # {dir_path}"
43
+ # system "xdg-open # {dir_path}"
44
+ # end
45
45
  end
46
46
  end
47
47
  end
@@ -50,21 +50,27 @@ class ShowFile
50
50
  conts = File.read(@src)
51
51
  id = conts.match(/\#\+qiita_#{@mode}: (.+)/)[1]
52
52
 
53
- set_config()
53
+ @access_token, @teams_url, @ox_qmd_load_path = SetConfig.new().set_config()
54
+ if @mode == "teams"
55
+ ErrorMassage.new().teams_url_error(@teams_url)
56
+ end
54
57
 
55
- qiita = (@mode == "teams")? @teams_url : "https://qiita.com/"
58
+ qiita = (@mode == "teams") ? @teams_url : "https://qiita.com/"
56
59
  path = "api/v2/items/#{id}"
57
60
 
58
- items = access_qiita(@access_token, qiita, path)
61
+ items = AccessQiita.new(@access_token, qiita, path).access_qiita()
59
62
 
63
+ @fileopen.file_open(items["url"])
64
+ =begin
60
65
  if @os == "mac"
61
- system "open #{items["url"]}"
66
+ system "open # {items["url"]}"
62
67
  elsif @os == "windows"
63
- system "explorer.exe #{items["url"]}"
68
+ system "explorer.exe # {items["url"]}"
64
69
  else
65
- system "open #{items["url"]}"
66
- system "xdg-open #{items["url"]}"
70
+ system "open # {items["url"]}"
71
+ system "xdg-open # {items["url"]}"
67
72
  end
73
+ =end
68
74
  end
69
75
 
70
76
  def show_file_url()
@@ -100,6 +106,7 @@ class ShowFile
100
106
  File.write(@src, lines.join)
101
107
  end
102
108
 
109
+ =begin
103
110
  def access_qiita(access_token, qiita, path)
104
111
  uri = URI.parse(qiita + path)
105
112
 
@@ -107,10 +114,11 @@ class ShowFile
107
114
  "Content-Type" => "application/json" }
108
115
 
109
116
  response = URI.open(
110
- "#{uri}",
111
- "Authorization" => "#{headers["Authorization"]}",
117
+ "# {uri}",
118
+ "Authorization" => "# {headers["Authorization"]}",
112
119
  )
113
120
  items = JSON.parse(response.read)
114
121
  return items
115
122
  end
123
+ =end
116
124
  end
@@ -0,0 +1,28 @@
1
+ require "colorize"
2
+ require "io/console"
3
+ require "qiita_org/get_file_path.rb"
4
+ require "qiita_org/show_file_and_url.rb"
5
+
6
+ class UpLoad
7
+ def initialize(src, option, os)
8
+ @src = src
9
+ @option = (option == "qiita" || option == "open")? "public" : option
10
+ @os = os
11
+ end
12
+
13
+ def upload()
14
+ paths = GetFilePath.new(@src).get_file_path()
15
+ unless paths.empty?
16
+ showfile = ShowFile.new(paths, @src, @option, @os)
17
+ showfile.open_file_dir()
18
+ showfile.open_qiita()
19
+
20
+ puts "Overwrite file URL's on #{@src}? (y/n)".green
21
+ ans = STDIN.getch
22
+
23
+ if ans == "y"
24
+ showfile.input_url_to_org()
25
+ end
26
+ end
27
+ end
28
+ end
@@ -1,3 +1,3 @@
1
1
  module QiitaOrg
2
- VERSION = "0.1.22"
2
+ VERSION = "0.1.23"
3
3
  end
@@ -1,18 +1,21 @@
1
- #+qiita_private: 5f8c73e8007e52ef3f40
1
+ # +qiita_private: 5f8c73e8007e52ef3f40
2
+ # +qiita_private: 4decbf7a81ef2327643f
2
3
  #+OPTIONS: ^:{}
3
4
  #+STARTUP: indent nolineimages
4
5
  #+TITLE: test
5
6
  #+AUTHOR: Kenta Yamamoto
6
7
  #+EMAIL: (concat "doi35077@kwansei.ac.jp")
8
+ #+qiita_id: yamatoken
7
9
  #+LANGUAGE: jp
8
10
  # +OPTIONS: H:4 toc:t num:2
9
11
  #+OPTIONS: toc:nil
10
- #+TAG: test
12
+ #+TAG: test1, test2, test3, test4, test5
11
13
  # +SETUPFILE: ~/.emacs.d/org-mode/theme-readtheorg.setup
12
14
 
13
15
  ![Mac OS X-10.13.3](https://img.shields.io/badge/MacOSX-10.13.3-brightgreen) ![ruby-2.7.0p0](https://img.shields.io/badge/ruby-2.7.0p0-brightgreen)
14
16
 
15
- fogefoge
17
+ | fogefoge | fogefoge |
18
+ | foge | foge |
16
19
  # +caption: example qiita template command
17
20
  # +name: fig:fig1
18
21
  #+ATTR_LATEX: :width 8cm
@@ -24,3 +27,5 @@ fogefoge
24
27
  [[file:../figs/fig2.png]]
25
28
 
26
29
  https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/612049/a3b2ab02-f903-f5d6-d8b9-5407e8db5a2a.png
30
+
31
+
@@ -18,4 +18,6 @@ fogefoge
18
18
  #+ATTR_LATEX: :width 8cm
19
19
  [[https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/612049/ebf505d2-6960-6bb9-20f0-e16dab142f4a.png][file:../figs/fig1.png]]
20
20
 
21
+ [[file:../figs/fig1.png]]
22
+
21
23
 
@@ -0,0 +1,15 @@
1
+ #+qiita_private: 92b50b88e7da7aa25a1b
2
+ #+OPTIONS: ^:{}
3
+ #+STARTUP: indent nolineimages
4
+ #+TITLE: title
5
+ #+AUTHOR: Kenta Yamamoto
6
+ #+EMAIL: (concat "doi35077@kwansei.ac.jp")
7
+ #+LANGUAGE: jp
8
+ # +OPTIONS: H:4 toc:t num:2
9
+ #+OPTIONS: toc:nil
10
+ #+TAG: tag1, tag2
11
+ # +SETUPFILE: ~/.emacs.d/org-mode/theme-readtheorg.setup
12
+
13
+ ![Mac OS X-10.13.3](https://img.shields.io/badge/MacOSX-10.13.3-brightgreen) ![ruby-2.7.0p0](https://img.shields.io/badge/ruby-2.7.0p0-brightgreen)
14
+
15
+ [[https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/612049/d0531ab8-57b7-7289-7e4f-75c9f54a45d3.png][file:../figs/fig1.png]]
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: qiita_org
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.22
4
+ version: 0.1.23
5
5
  platform: ruby
6
6
  authors:
7
7
  - Kenta Yamamoto
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2020-10-28 00:00:00.000000000 Z
11
+ date: 2020-11-11 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -957,10 +957,13 @@ files:
957
957
  - gems/ruby/2.7.0/specifications/thor-1.0.1.gemspec
958
958
  - lib/qiita_org.rb
959
959
  - lib/qiita_org/.qiita.conf
960
+ - lib/qiita_org/access_qiita.rb
960
961
  - lib/qiita_org/check_pc_os.rb
961
962
  - lib/qiita_org/config.json
962
963
  - lib/qiita_org/config.rb
963
964
  - lib/qiita_org/decide_option.rb
965
+ - lib/qiita_org/error_message.rb
966
+ - lib/qiita_org/file_open.rb
964
967
  - lib/qiita_org/get.rb
965
968
  - lib/qiita_org/get_file_path.rb
966
969
  - lib/qiita_org/get_file_url.rb
@@ -971,8 +974,11 @@ files:
971
974
  - lib/qiita_org/ox-qmd/ox-qmd.el
972
975
  - lib/qiita_org/post.rb
973
976
  - lib/qiita_org/search_conf_path.rb
977
+ - lib/qiita_org/select_path.rb
978
+ - lib/qiita_org/set_config.rb
974
979
  - lib/qiita_org/show_file_and_url.rb
975
980
  - lib/qiita_org/template.org
981
+ - lib/qiita_org/upload.rb
976
982
  - lib/qiita_org/version.rb
977
983
  - qiita_org.gemspec
978
984
  - tests/hoge.rb
@@ -981,6 +987,7 @@ files:
981
987
  - tests/test2.md
982
988
  - tests/test2.org
983
989
  - tests/test3.org
990
+ - tests/test4.org
984
991
  homepage: https://github.com/yamatoken/qiita_org
985
992
  licenses:
986
993
  - MIT