qiita_org 0.1.29 → 0.1.34

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: c58fb11dfd57ea6232e6e98e928d8d27f794f6f6ad87ecdf1fdcffb2ce1a6dbf
4
- data.tar.gz: 1b882620532dfbc2f74e3ce758f9ff4b73bac938454c534918a927a1f66ec08a
3
+ metadata.gz: aeb87f387d30d9841544ed8ffc39ed661551eb18e2b08349784bcec52f4536b7
4
+ data.tar.gz: cae658785a60089b2c831ff19ae50fff9fcfb10763f135016f5bf1449330543c
5
5
  SHA512:
6
- metadata.gz: 778ca2f40420b1436bdc851602b5a7ba97ec6f22e7e8ea5992779e18d793e7ac9070615e02e0dd67411a09ce7768d9be0992738808918e497ee472bc9de1fdfb
7
- data.tar.gz: e847a505b58de91a61004d8a00bae41689c1197ba4d6b317717eb84a81f1a3afe899bab7e92954ffaca92414612794df68c74de721662c52be673112e58a8759
6
+ metadata.gz: 852b7ce6c726f8912c1767872d590f4b1397ff2474603daae95c4405b4f3e89ed4b4660cd214b4970c02332e53be5b7498debd7f4ff221d9f340a0a9ff82471b
7
+ data.tar.gz: 17bc4ff9137207256e5c903cace754290a141242e069d6f93210394ee66bcaf8cb565dc56a7a9f4dc12c24bd6bc6de91ef0bab4ce54a2ea2274551dce291a53a
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- qiita_org (0.1.28)
4
+ qiita_org (0.1.33)
5
5
  colorize
6
6
  command_line (> 2.0.0)
7
7
  fileutils
@@ -9,22 +9,15 @@ require "qiita_org/get"
9
9
  require "qiita_org/list"
10
10
  require "qiita_org/all"
11
11
  require "qiita_org/get_template"
12
- require "qiita_org/check_pc_os"
13
12
  require "qiita_org/upload"
14
- require "qiita_org/get_file_path"
15
- require "qiita_org/show_file_and_url"
16
- require "qiita_org/decide_option"
17
13
  require "qiita_org/get_multiple_files"
18
- #require "qiita_org/qiita_org_thor"
14
+ require "qiita_org/base"
19
15
 
20
16
  module QiitaOrg
21
17
  class CLI < Thor
22
- # def initialize(*argv)
23
- # super(*argv)
24
- # end
25
- #
26
18
  def initialize(*argv)
27
19
  super(*argv)
20
+ @base = QiitaBase.new()
28
21
  end
29
22
 
30
23
  desc "say_hello", "say_hello"
@@ -37,24 +30,25 @@ module QiitaOrg
37
30
  desc "post [FILE] [private/public/teams]", "post to qiita from org"
38
31
 
39
32
  def post(*argv)
40
- checkos = CheckPcOs.new
41
- os = checkos.return_os()
33
+ os = @base.check_pc_os()
42
34
 
43
35
  if argv.size > 2
44
36
  GetMultipleFiles.new(argv, os, "post").run()
45
- elsif argv[-1].match(/(.+).org/) && argv.size != 1
46
- GetMultipleFiles.new(argv, os, "post").run()
47
- else
48
- p ["in qiita_org.rb", argv]
49
- p file = argv[0] || "README.org"
50
- p mode = argv[1] || DecideOption.new(file).decide_option()
51
- qiita = QiitaPost.new(file, mode, os)
52
- begin
53
- qiita.select_option(mode)
54
- rescue RuntimeError => e
55
- puts $!
37
+ else #if argv.size > 1
38
+ if argv[-1].match(/(.+).org/)
39
+ GetMultipleFiles.new(argv, os, "post").run()
56
40
  else
57
- qiita.run
41
+ p ["in qiita_org.rb", argv]
42
+ p file = argv[0] || "README.org"
43
+ p mode = argv[1] || @base.pick_up_option(file)
44
+ qiita = QiitaPost.new(file, mode, os)
45
+ begin
46
+ qiita.select_option(mode)
47
+ rescue RuntimeError => e
48
+ puts $!
49
+ else
50
+ qiita.run
51
+ end
58
52
  end
59
53
  end
60
54
  end
@@ -62,35 +56,20 @@ module QiitaOrg
62
56
  desc "upload [FILE] [teams/public/private]", "upload about image to qiita"
63
57
 
64
58
  def upload(*argv)
65
- checkos = CheckPcOs.new
66
- os = checkos.return_os()
59
+ os = @base.check_pc_os()
67
60
 
68
61
  if argv.size > 2
69
62
  GetMultipleFiles.new(argv, os, "upload").run()
70
- elsif argv[-1].match(/(.+).org/) && argv.size != 1
71
- GetMultipleFiles.new(argv, os, "upload").run()
72
- else
73
- p file = argv[0] || "README.org"
74
- p mode = argv[1] || DecideOption.new(file).decide_option()
63
+ else #if argv.size > 1
64
+ if argv[-1].match(/(.+).org/)
65
+ GetMultipleFiles.new(argv, os, "upload").run()
66
+ else
67
+ p file = argv[0] || "README.org"
68
+ p mode = argv[1] || @base.pick_up_option(file)
75
69
 
76
- qiita = QiitaUpLoad.new(file, mode, os).upload()
77
- end
78
- =begin
79
- getpath = GetFilePath.new(file)
80
- paths = getpath.get_file_path()
81
- unless paths.empty?
82
- showfile = ShowFile.new(paths, file, mode, os)
83
- showfile.open_file_dir()
84
- showfile.open_qiita()
85
-
86
- puts "Input file URL's on #{file}? (y/n)".green
87
- ans = STDIN.getch
88
-
89
- if ans == "y"
90
- showfile.input_url_to_org()
70
+ qiita = QiitaFileUpLoad.new(file, mode, os).upload()
91
71
  end
92
72
  end
93
- =end
94
73
  end
95
74
 
96
75
  desc "config [global/local] [option] [input]", "set config"
@@ -115,19 +94,17 @@ module QiitaOrg
115
94
  desc "template", "make template.org"
116
95
 
117
96
  def template(*argv)
118
- checkos = CheckPcOs.new
119
- os = checkos.return_os()
97
+ os = @base.check_pc_os()
98
+ filename = argv[0] || "template.org"
99
+ filename = (filename.include?(".org"))? filename : "#{filename}.org"
120
100
 
121
- template = QiitaGetTemplate.new(os).run()
101
+ template = QiitaGetTemplate.new(os, filename).run()
122
102
  end
123
103
 
124
- desc "all", "post all org files in the directory"
125
- method_options hoge: :string
104
+ desc "all [teams/public/private] [options]", "post all org files in the directory"
105
+
126
106
  def all(*argv)
127
- mode = argv[0] || false
128
- # p [argv[0], argv[1]]
129
- puts options[:hoge]
130
- QiitaAll.new(mode).run()
107
+ QiitaAll.new(argv).run()
131
108
  end
132
109
 
133
110
  desc "list [qiita/teams]", "view qiita report list"
@@ -20,8 +20,6 @@ class AccessQiita
20
20
  "Authorization" => "#{headers["Authorization"]}",
21
21
  )
22
22
  rescue => e
23
- #puts "#{$!}".red
24
- #exit
25
23
  ErrorMessage.new().qiita_access_error(e)
26
24
  else
27
25
  items = JSON.parse(response.read)
@@ -1,16 +1,19 @@
1
1
  require "colorize"
2
2
 
3
3
  class QiitaAll
4
- def initialize(mode)
5
- @mode = mode
4
+ def initialize(argv)
5
+ check_options(argv)
6
6
  @files = Dir.glob("*.org")
7
7
  p @files
8
8
  end
9
9
 
10
10
  def run()
11
11
  @files.each do |file|
12
- if file == "template.org"
13
- next
12
+ unless @exclude_files.empty?
13
+ next if @exclude_files.include?(file)
14
+ #if @exclude_files.include?(file)
15
+ # next
16
+ #end
14
17
  end
15
18
 
16
19
  unless @mode
@@ -28,4 +31,20 @@ class QiitaAll
28
31
  end
29
32
  end
30
33
  end
34
+
35
+ def check_options(string)
36
+ ["teams", "private", "public"].each do |i|
37
+ if string.include?(i)
38
+ @mode = i
39
+ break
40
+ else
41
+ @mode = false
42
+ end
43
+ end
44
+
45
+ @exclude_files = []
46
+ if string.include?("--exclude")
47
+ @exclude_files = string.grep(/.org/)
48
+ end
49
+ end
31
50
  end
@@ -0,0 +1,98 @@
1
+ require "colorize"
2
+ require "qiita_org/error_message.rb"
3
+
4
+ class QiitaBase
5
+ def initialize()
6
+
7
+ end
8
+
9
+ def check_pc_os()
10
+ if system "sw_vers"
11
+ return os = "mac"
12
+ elsif system "wmic.exe os get caption"
13
+ return os = "windows"
14
+ else
15
+ return nil
16
+ end
17
+ end
18
+
19
+ def pick_up_option(src)
20
+ lines = File.readlines(src)
21
+
22
+ lines.each do |line|
23
+ m = []
24
+ if m = line.match(/\#\+qiita_(.+): (.+)/)
25
+ option = m[1]
26
+ unless option == "public" || option == "teams" || option == "private"
27
+ next
28
+ end
29
+ return option
30
+ end
31
+ end
32
+ return option = "private"
33
+ end
34
+
35
+ def search_conf_path(dir, home)
36
+ while dir != home
37
+ if File.exists?(File.join(dir, ".qiita.conf"))
38
+ return dir
39
+ else
40
+ dir = dir.match(/(.+)\//)[1]
41
+ end
42
+ end
43
+ return dir
44
+ end
45
+
46
+ def select_access_path(mode, teams_url)
47
+ case mode
48
+ when "teams"
49
+ qiita = teams_url
50
+ path = "api/v2/items?page=1&per_page=100"
51
+ else
52
+ qiita = "https://qiita.com/"
53
+ path = "api/v2/authenticated_user/items?page=1&per_page=100"
54
+ end
55
+ return qiita, path
56
+ end
57
+
58
+ def set_config()
59
+ conf_dir = search_conf_path(Dir.pwd, Dir.home)
60
+ lib = File.expand_path("../../../lib", __FILE__)
61
+ if conf_dir != Dir.home
62
+ puts "config file path: #{conf_dir.gsub(Dir.home, "~")}".green
63
+ else
64
+ puts "config file path: #{conf_dir}".green
65
+ end
66
+
67
+ conf_path = File.join(conf_dir, ".qiita.conf")
68
+ conf = JSON.load(File.read(conf_path))
69
+ access_token = conf["access_token"]
70
+ teams_url = conf["teams_url"]
71
+ display = conf["display"]
72
+ ox_qmd_load_path = File.join(lib, "qiita_org", "ox-qmd", "ox-qmd")
73
+
74
+ ErrorMessage.new().access_token_error(access_token)
75
+
76
+ return access_token, teams_url, display, ox_qmd_load_path
77
+ end
78
+
79
+ def file_open(os, order)
80
+ if os == "mac"
81
+ system "open #{order}"
82
+ elsif os == "windows"
83
+ system "explorer.exe #{order}"
84
+ else
85
+ system "xdg-open #{order}"
86
+ end
87
+ end
88
+
89
+ def get_report_id(src, option)
90
+ conts = File.read(src)
91
+ if conts.match?(/^\#\+qiita_#{option}:\s(.+)/)
92
+ id = conts.match(/\#\+qiita_#{option}: (.+)/)[1]
93
+ else
94
+ id = nil
95
+ end
96
+ return id
97
+ end
98
+ end
@@ -7,8 +7,7 @@ class QiitaConfig
7
7
  @option = option
8
8
  @input = input
9
9
  if status == "local"
10
- search = SearchConfPath.new(Dir.pwd, Dir.home)
11
- conf_dir = search.search_conf_path()
10
+ conf_dir = QiitaBase.new().search_conf_path(Dir.pwd, Dir.home)
12
11
  if @option == "set"
13
12
  @setup = File.join(Dir.pwd, ".qiita.conf")
14
13
  else
@@ -8,6 +8,8 @@ class ErrorMessage
8
8
  def access_token_error(access_token)
9
9
  if access_token == ""
10
10
  puts "Please setting ACCESS_TOKEN".red
11
+ puts "Hint: qiita config global access_token 'your access_token'".red
12
+ puts "Hint: qiita config local access_token 'your access_token'".red
11
13
  exit
12
14
  end
13
15
  end
@@ -15,6 +17,8 @@ class ErrorMessage
15
17
  def teams_url_error(teams_url)
16
18
  if teams_url == ""
17
19
  puts "Please setting teams_url".red
20
+ puts "Hint: qiita config global teams_url 'https://foge.qiita.com/'".red
21
+ puts "Hint: qiita config local teams_url 'https://foge.qiita.com/'".red
18
22
  exit
19
23
  end
20
24
  end
@@ -77,8 +81,8 @@ class ErrorMessage
77
81
 
78
82
  def md_file_exists?(src, res)
79
83
  unless File.exists?(src.gsub(".org", ".md"))
80
- puts "Can not make #{src.gsub(".org", ".md")}".red
81
- puts "Please confirm emacs version.".red
84
+ puts "Can not transform #{src.gsub(".org", ".md")} from #{src}, please chech org syntax.".red
85
+ puts "Please confirm emacs version it 26 or more.".red
82
86
  exit
83
87
  else
84
88
  p res
@@ -3,8 +3,6 @@ require "json"
3
3
  require "open-uri"
4
4
  require "io/console"
5
5
  require "colorize"
6
- require "qiita_org/select_path.rb"
7
- require "qiita_org/set_config.rb"
8
6
  require "qiita_org/error_message.rb"
9
7
  require "qiita_org/access_qiita.rb"
10
8
 
@@ -12,47 +10,9 @@ class QiitaGet
12
10
  def initialize(mode, id)
13
11
  @mode = mode
14
12
  @get_id = id
15
- @selectpath = SelectPath.new()
13
+ @base = QiitaBase.new()
16
14
  end
17
15
 
18
- # select path
19
- =begin
20
- def select_path(mode)
21
- case mode
22
- when "teams"
23
- qiita = @teams_url
24
- path = "api/v2/items?page=1&per_page=100"
25
- else
26
- qiita = "https://qiita.com/"
27
- path = "api/v2/authenticated_user/items?page=1&per_page=100"
28
- end
29
- return qiita, path
30
- end
31
- =end
32
-
33
- # access qiita
34
- =begin
35
- def access_qiita()
36
- uri = URI.parse(@qiita + @path)
37
-
38
- headers = { "Authorization" => "Bearer # {@access_token}",
39
- "Content-Type" => "application/json" }
40
-
41
- begin
42
- response = URI.open(
43
- "# {uri}",
44
- "Authorization" => "# {headers["Authorization"]}",
45
- )
46
- #raise "NOT FOUND: # {@get_id} report".red
47
- rescue => e
48
- puts "# {$!}".red
49
- exit
50
- else
51
- @items = JSON.parse(response.read)
52
- end
53
- end
54
- =end
55
-
56
16
  # select report
57
17
  def select_report()
58
18
  @items.each do |item|
@@ -141,7 +101,6 @@ EOS
141
101
  @path = "api/v2/items/#{@get_id}"
142
102
 
143
103
  @items = AccessQiita.new(@access_token, @qiita, @path).access_qiita()
144
- #access_qiita()
145
104
 
146
105
  @title = @items["title"]
147
106
  @id = @items["id"]
@@ -159,13 +118,13 @@ EOS
159
118
  end
160
119
 
161
120
  def run()
162
- @access_token, @teams_url, @display, @ox_qmd_load_path = SetConfig.new().set_config()
121
+ @access_token, @teams_url, @display, @ox_qmd_load_path = @base.set_config()
163
122
  if @mode == "teams"
164
123
  ErrorMessage.new().teams_url_error(@teams_url)
165
124
  end
166
125
 
167
126
  if @get_id == nil
168
- @qiita, @path = @selectpath.select_path(@mode, @teams_url)
127
+ @qiita, @path = @base.select_access_path(@mode, @teams_url)
169
128
  @items = AccessQiita.new(@access_token, @qiita, @path).access_qiita()
170
129
  select_report()
171
130
  else
@@ -1,8 +1,6 @@
1
1
  require "colorize"
2
- #require "../qiita_org/qiita_org.rb"
3
2
  require "qiita_org/post.rb"
4
3
  require "qiita_org/upload.rb"
5
- require "qiita_org/decide_option.rb"
6
4
 
7
5
  class GetMultipleFiles
8
6
  def initialize(files, os, type)
@@ -17,9 +15,9 @@ class GetMultipleFiles
17
15
  end
18
16
 
19
17
  def run()
20
- puts "post files: #{@files}".green
18
+ puts "#{@type} files: #{@files}".green
21
19
  @files.each do |file|
22
- mode = @option || DecideOption.new(file).decide_option()
20
+ mode = @option || QiitaBase.new().pick_up_option(file)
23
21
  puts "qiita #{@type} #{file} #{mode}".green
24
22
  if @type == "post"
25
23
  qiita = QiitaPost.new(file, mode, @os)
@@ -31,7 +29,7 @@ class GetMultipleFiles
31
29
  qiita.run
32
30
  end
33
31
  elsif @type == "upload"
34
- UpLoad.new(file, mode, @os).upload()
32
+ QiitaFileUpLoad.new(file, mode, @os).upload()
35
33
  end
36
34
  end
37
35
  end
@@ -1,15 +1,13 @@
1
1
  require "fileutils"
2
2
  require "colorize"
3
3
  require "kconv"
4
- require "qiita_org/search_conf_path"
5
4
  require "qiita_org/error_message.rb"
6
5
 
7
6
  class QiitaGetTemplate
8
- def initialize(os)
7
+ def initialize(os, filename)
9
8
  @os = os
10
- search = SearchConfPath.new(Dir.pwd, Dir.home)
11
- @conf_dir = search.search_conf_path()
12
- # check_write_header()
9
+ @filename = filename
10
+ @conf_dir = QiitaBase.new().search_conf_path(Dir.pwd, Dir.home)
13
11
  end
14
12
 
15
13
  def get_macos_version()
@@ -18,9 +16,9 @@ class QiitaGetTemplate
18
16
  m = []
19
17
  m = version.match(/ProductName:\t(.+)\nProductVersion:\t(.+)\nBuildVersion:\t(.+)\n/)
20
18
  system 'rm hoge.txt'
21
- conts = File.read("template.org")
19
+ conts = File.read(@filename)
22
20
  conts << "![#{m[1]}-#{m[2]}](https://img.shields.io/badge/#{m[1].gsub(" ", "")}-#{m[2]}-brightgreen) "
23
- File.write("template.org", conts) # + "# {m[1]}: # {m[2]}\n")
21
+ File.write(@filename, conts) # + "# {m[1]}: # {m[2]}\n")
24
22
  end
25
23
 
26
24
  def get_windowsos_version()
@@ -33,9 +31,9 @@ class QiitaGetTemplate
33
31
  m2 = version2.match(/OSArchitecture\n(.+)-bit/)
34
32
  system 'rm hoge1.txt'
35
33
  system 'rm hoge2.txt'
36
- conts = File.read("template.org")
34
+ conts = File.read(@filename)
37
35
  conts << "![#{m1[1]}-#{m1[2]}](https://img.shields.io/badge/#{m1[1].gsub(" ", "")}#{m1[2]}-#{m2[1]}bit-brightgreen) "
38
- File.write("template.org", conts) # + "# {m[1]}: # {m[2]}\n")
36
+ File.write(@filename, conts) # + "# {m[1]}: # {m[2]}\n")
39
37
  end
40
38
 
41
39
  def get_ubuntu_version()
@@ -44,9 +42,9 @@ class QiitaGetTemplate
44
42
  m = []
45
43
  m = version.match(/(.+) (.+) LTS /)
46
44
  system 'rm hoge.txt'
47
- conts = File.read("template.org")
45
+ conts = File.read(@filename)
48
46
  conts << "![#{m[1]}-#{m[2]}](https://img.shields.io/badge/#{m[1]}-#{m[2]}-brightgreen) "
49
- File.write("template.org", conts)
47
+ File.write(@filename, conts)
50
48
  end
51
49
 
52
50
  def get_ruby_version()
@@ -55,9 +53,9 @@ class QiitaGetTemplate
55
53
  m = []
56
54
  m = version.match(/ruby (.+) \((.+)/)
57
55
  system 'rm hoge.txt'
58
- conts = File.read("template.org")
56
+ conts = File.read(@filename)
59
57
  conts << "![ruby-#{m[1]}](https://img.shields.io/badge/ruby-#{m[1].gsub(" ", "")}-brightgreen) "
60
- File.write("template.org", conts) # + "ruby: # {m[1]}\n")
58
+ File.write(@filename, conts) # + "ruby: # {m[1]}\n")
61
59
  end
62
60
 
63
61
  # cp template.org
@@ -65,11 +63,11 @@ class QiitaGetTemplate
65
63
  lib = File.expand_path("../../../lib", __FILE__)
66
64
  cp_file = File.join(lib, "qiita_org", "template.org")
67
65
 
68
- if File.exists?("./template.org")
69
- puts "template.org exists.".red
66
+ if File.exists?("./#{@filename}")
67
+ puts "#{@filename} exists.".red
70
68
  exit
71
69
  else
72
- FileUtils.cp(cp_file, ".", verbose: true)
70
+ FileUtils.cp(cp_file, @filename, verbose: true)
73
71
  end
74
72
  end
75
73
 
@@ -104,42 +102,15 @@ class QiitaGetTemplate
104
102
  end
105
103
  end
106
104
 
107
- def check_write_header()
108
- ["name", "email"].each do |src|
109
- print "Write your #{src}?(y/n) "
110
- ans = STDIN.gets.chomp
111
- next if ans == "n"
112
- if ans == "y"
113
- send("get_#{src}")
114
- end
115
- end
116
- end
117
-
118
- def get_name()
119
- conts = File.readlines("template.org")
120
- p "Type your name"
121
- name = STDIN.gets
122
- conts[3] = "#+AUTHOR: #{name}"
123
- File.write("template.org", conts.join)
124
- end
125
-
126
- def get_email()
127
- conts = File.readlines("template.org")
128
- p "Type your email"
129
- email = STDIN.gets
130
- conts[4] = "#+EMAIL: (concat \"#{email.chomp}\")\n"
131
- File.write("template.org", conts.join)
132
- end
133
-
134
105
  def set_name_and_email()
135
106
  conf_path = File.join(@conf_dir, ".qiita.conf")
136
107
  conf = JSON.load(File.read(conf_path))
137
108
  name = conf["name"]
138
109
  email = conf["email"]
139
- conts = File.readlines("template.org")
110
+ conts = File.readlines(@filename)
140
111
  conts[3] = "#+AUTHOR: #{name}\n"
141
112
  conts[4] = "#+EMAIL: (concat \"#{email}\")\n"
142
- File.write("template.org", conts.join)
113
+ File.write(@filename, conts.join)
143
114
  end
144
115
 
145
116
  def run()
@@ -2,54 +2,23 @@ require "net/https"
2
2
  require "json"
3
3
  require "open-uri"
4
4
  require "colorize"
5
- require "qiita_org/select_path.rb"
6
- require "qiita_org/set_config.rb"
7
5
  require "qiita_org/error_message.rb"
8
6
  require "qiita_org/access_qiita.rb"
9
7
 
10
8
  class QiitaList
11
9
  def initialize(mode)
12
10
  @mode = mode
13
- @access_token, @teams_url, @display, @ox_qmd_load_path = SetConfig.new().set_config()
11
+ @base = QiitaBase.new
12
+ @access_token, @teams_url, @display, @ox_qmd_load_path = @base.set_config()
14
13
  if @mode == "teams"
15
14
  ErrorMessage.new().teams_url_error(@teams_url)
16
15
  end
17
16
 
18
- @qiita, @path = SelectPath.new().select_path(@mode, @teams_url)
17
+ @qiita, @path = @base.select_access_path(@mode, @teams_url)
19
18
  @items = AccessQiita.new(@access_token, @qiita, @path).access_qiita()
20
19
  view_list()
21
20
  end
22
21
 
23
- # select path
24
- =begin
25
- def select_path()
26
- case @mode
27
- when "teams"
28
- @qiita = @teams_url
29
- @path = "api/v2/items?page=1&per_page=100"
30
- else
31
- @qiita = "https://qiita.com/"
32
- @path = "api/v2/authenticated_user/items?page=1&per_page=100"
33
- end
34
- end
35
- =end
36
-
37
- # access qiita
38
- =begin
39
- def access_qiita()
40
- uri = URI.parse(@qiita + @path)
41
-
42
- headers = { "Authorization" => "Bearer # {@access_token}",
43
- "Content-Type" => "application/json" }
44
-
45
- response = URI.open(
46
- "# {uri}",
47
- "Authorization" => "# {headers["Authorization"]}",
48
- )
49
- @items = JSON.parse(response.read)
50
- end
51
- =end
52
-
53
22
  def view_list()
54
23
  @items.each do |item|
55
24
  puts "title: #{item["title"]}"
@@ -62,6 +31,5 @@ class QiitaList
62
31
  end
63
32
  puts ""
64
33
  end
65
- # p @items[0]["user"]["id"]
66
34
  end
67
35
  end
@@ -1,6 +1,6 @@
1
1
  class MdConverter
2
2
  def initialize()
3
- # @lines = lines
3
+
4
4
  end
5
5
 
6
6
  def convert_for_image(lines)
@@ -5,15 +5,15 @@ require "json"
5
5
  require "command_line/global"
6
6
  require "colorize"
7
7
  require "qiita_org/md_converter_for_image"
8
- require "qiita_org/set_config.rb"
9
8
  require "qiita_org/error_message"
10
- require "qiita_org/file_open.rb"
9
+ require "qiita_org/access_qiita.rb"
11
10
 
12
11
  class QiitaPost
13
12
  def initialize(file, option, os)
14
13
  @src = file
15
14
  @option = (option == "qiita" || option == "open")? "public" : option
16
15
  @os = os
16
+ @base = QiitaBase.new
17
17
  end
18
18
 
19
19
  public
@@ -21,10 +21,6 @@ class QiitaPost
21
21
  m = conts.match(/\#\+(TITLE|title|Title): (.+)/)
22
22
  @title = m ? m[2] : "テスト"
23
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
24
  ErrorMessage.new().many_tags_error(m[2])
29
25
  m[2].split(",").inject([]) do |l, c|
30
26
  l << { name: c.strip } #, versions: []}
@@ -40,7 +36,6 @@ class QiitaPost
40
36
  def convert_org_to_md()
41
37
  command = "emacs #{@src} --batch -l #{@ox_qmd_load_path} -f org-qmd-export-to-markdown --kill"
42
38
  res = command_line command
43
- #p res
44
39
  ErrorMessage.new().md_file_exists?(@src, res)
45
40
  end
46
41
 
@@ -52,16 +47,38 @@ class QiitaPost
52
47
  end
53
48
 
54
49
  # patch or post selector by qiita_id
55
- def select_patch_or_post(conts, option)
56
- m = []
50
+ def select_patch_or_post(src, option)
51
+ #m = []
57
52
  patch = false
58
- if m = conts.match(/\#\+qiita_#{option}: (.+)/)
59
- qiita_id = m[1]
60
- patch = true
53
+ qiita_id = @base.get_report_id(src, option)
54
+ patch = true if qiita_id != nil
55
+ #if m = conts.match(/\#\+qiita_#{option}: (.+)/)
56
+ # qiita_id = m[1]
57
+ #patch = true
58
+ #else
59
+ # qiita_id = ""
60
+ #end
61
+ return qiita_id, patch
62
+ end
63
+
64
+ def check_change_public(conts, option, id)
65
+ qiita = "https://qiita.com/"
66
+ path = "api/v2/items/#{id}"
67
+ items = AccessQiita.new(@access_token, qiita, path).access_qiita()
68
+
69
+ if items["private"]
70
+ return conts, option
61
71
  else
62
- qiita_id = ""
72
+ option = "public"
73
+ lines = File.readlines(@src)
74
+ file = File.open(@src, "w")
75
+ lines.each_with_index do |line, i|
76
+ lines[i] = "#+qiita_#{option}: #{id}\n" if line.match(/\#\+qiita_private: (.+)/)
77
+ file.print(lines[i])
78
+ end
79
+ conts = File.read(@src)
80
+ return conts, option
63
81
  end
64
- return qiita_id, patch
65
82
  end
66
83
 
67
84
  # check twitter post
@@ -71,8 +88,6 @@ class QiitaPost
71
88
 
72
89
  def select_option(option)
73
90
  qiita = (option == "teams")? @teams_url : "https://qiita.com/"
74
- #qiita = (option == "teams")? "https://nishitani.qiita.com/" :
75
- # "https://qiita.com/"
76
91
  case option
77
92
  when "teams", "qiita", "public", "open"
78
93
  private = false
@@ -146,24 +161,10 @@ class QiitaPost
146
161
  end
147
162
  end
148
163
 
149
- # open qiita
150
- =begin
151
- def open_qiita()
152
- if @os == "mac"
153
- system "open # {@res_body["url"]}"
154
- elsif @os == "windows"
155
- system "explorer.exe # {@res_body["url"]}"
156
- else
157
- system "open # {@res_body["url"]}"
158
- system "xdg-open # {@res_body["url"]}"
159
- end
160
- end
161
- =end
162
-
163
164
  def run()
164
165
  @conts = File.read(@src)
165
166
  @title, @tags = get_title_tags(@conts)
166
- @access_token, @teams_url, @display, @ox_qmd_load_path = SetConfig.new().set_config()
167
+ @access_token, @teams_url, @display, @ox_qmd_load_path = @base.set_config()
167
168
 
168
169
  if @option == "teams"
169
170
  ErrorMessage.new().teams_url_error(@teams_url)
@@ -172,14 +173,14 @@ class QiitaPost
172
173
  convert_org_to_md()
173
174
  add_source_path_in_md()
174
175
  @lines = MdConverter.new().convert_for_image(@lines)
175
- @qiita_id, @patch = select_patch_or_post(@conts, @option)
176
+ @qiita_id, @patch = select_patch_or_post(@src, @option)
177
+ @conts, @option = check_change_public(@conts, @option, @qiita_id) if (@patch and @option == "private")
176
178
  @twitter = select_twitter(@conts, @option)
177
179
  @qiita, @private = select_option(@option)
178
180
  @res = qiita_post()
179
181
  get_and_print_qiita_return()
180
182
 
181
- #open_qiita()
182
- FileOpen.new(@os).file_open(@res_body["url"]) if @display != "suppress"
183
+ @base.file_open(@os, @res_body["url"]) if @display != "suppress"
183
184
 
184
185
  add_qiita_id_on_org()
185
186
 
@@ -1,33 +1,27 @@
1
1
  require "colorize"
2
2
  require "io/console"
3
- require "qiita_org/get_file_path.rb"
4
- require "qiita_org/show_file_and_url.rb"
5
- require "qiita_org/file_open.rb"
6
- require "qiita_org/set_config.rb"
7
3
  require "qiita_org/access_qiita.rb"
8
4
 
9
- class QiitaUpLoad
5
+ class QiitaFileUpLoad
10
6
  def initialize(src, option, os)
11
7
  @src = src
12
8
  @option = (option == "qiita" || option == "open")? "public" : option
13
9
  @os = os
14
- @fileopen = FileOpen.new(@os)
10
+ @base = QiitaBase.new()
11
+ @access_token, @teams_url, @display, @ox_qmd_load_path = QiitaBase.new().set_config()
12
+ ErrorMessage.new().teams_url_error(@teams_url) if @option == "teams"
15
13
  end
16
14
 
17
15
  def upload()
18
- paths = GetFilePath.new(@src).get_file_path()
19
- #paths = get_file_path(@src)
16
+ paths = get_file_path(@src)
20
17
  unless paths.empty?
21
- showfile = ShowFile.new(paths, @src, @option, @os)
22
- showfile.open_file_dir() #open_file_dir(paths)
23
- showfile.open_qiita() #open_qiita()
18
+ open_file_dir(paths)
19
+ open_qiita()
24
20
 
25
21
  puts "Overwrite file URL's on #{@src}? (y/n)".green
26
22
  ans = STDIN.getch
27
23
 
28
- if ans == "y"
29
- showfile.input_url_to_org()
30
- end
24
+ input_url_to_org(paths) if ans == "y"
31
25
  else
32
26
  puts "file path is empty.".red
33
27
  end
@@ -52,32 +46,27 @@ class QiitaUpLoad
52
46
  def open_file_dir(paths)
53
47
  previous_paths = []
54
48
  previous_paths << File.join(paths[0].split("/")[0..-2])
55
- @fileopen.file_open(File.join(paths[0].split("/")[0..-2]))
49
+ @base.file_open(@os, File.join(paths[0].split("/")[0..-2]))
56
50
 
57
51
  paths.each do |path|
58
52
  dir_path = File.join(path.split("/")[0..-2])
59
53
  unless previous_paths.include?(dir_path)
60
54
  previous_paths << dir_path
61
- @fileopen.file_open(dir_path)
55
+ @base.file_open(@os, dir_path)
62
56
  end
63
57
  end
64
58
  end
65
59
 
66
60
  def open_qiita()
67
- conts = File.read(@src)
68
- id = conts.match(/\#\+qiita_#{option}: (.+)/)[1]
69
-
70
- @access_token, @teams_url, @display, @ox_qmd_load_path = SetConfig.new().set_config()
71
- if @option == "teams"
72
- ErrorMassage.new().teams_url_error(@teams_url)
73
- end
61
+ id = QiitaBase.new().get_report_id(@src, @option)
74
62
 
75
63
  qiita = (@option == "teams") ? @teams_url : "https://qiita.com/"
76
64
  path = "api/v2/items/#{id}"
77
65
 
78
- items = AccessQiita.new(@access_token, qiita, path).access_qiita()
66
+ @access = AccessQiita.new(@access_token, qiita, path)
67
+ items = @access.access_qiita()
79
68
 
80
- @fileopen.file_open(items["url"])
69
+ @base.file_open(@os, items["url"])
81
70
  end
82
71
 
83
72
  def input_url_to_org(paths)
@@ -87,7 +76,12 @@ class QiitaUpLoad
87
76
 
88
77
  paths.each do |path|
89
78
  file_name = File.basename(path).strip
90
- url = get_file_url(id, file_name)
79
+ #url = (get_file_url(id, file_name)) ? @file_url : next
80
+ if get_file_url(id, file_name)
81
+ url = @file_url
82
+ else
83
+ next
84
+ end
91
85
  lines.each_with_index do |line, i|
92
86
  if line.match(/\[\[file:#{path}\]\]/)
93
87
  lines[i] = "[[#{url}][file:#{path}]]\n"
@@ -97,4 +91,20 @@ class QiitaUpLoad
97
91
 
98
92
  File.write(@src, lines.join)
99
93
  end
94
+
95
+ def get_file_url(id, file_name)
96
+ qiita = (@option == "teams")? @teams_url : "https://qiita.com/"
97
+ path = "api/v2/items/#{@id}"
98
+
99
+ items = @access.access_qiita()
100
+
101
+ if items["body"].match?(/\!\[#{file_name}\]\(((.+))\)/)
102
+ @file_url = items["body"].match(/\!\[#{file_name}\]\(((.+))\)/)[2]
103
+ puts "Wrote #{file_name}'s URL".green
104
+ return true
105
+ else
106
+ puts "Can not find #{file_name}'s URL".red
107
+ return false
108
+ end
109
+ end
100
110
  end
@@ -1,3 +1,3 @@
1
1
  module QiitaOrg
2
- VERSION = "0.1.29"
2
+ VERSION = "0.1.34"
3
3
  end
@@ -1,4 +1,5 @@
1
- #+qiita_private: e87e38157a72b4c2e839
1
+ #+qiita_private: 4a238f55b2014ae6494e
2
+ # +qiita_private: e87e38157a72b4c2e839
2
3
  # +qiita_private: 5f8c73e8007e52ef3f40
3
4
  # +qiita_private: 4decbf7a81ef2327643f
4
5
  #+OPTIONS: ^:{}
@@ -18,6 +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
- [[https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/612049/ebf505d2-6960-6bb9-20f0-e16dab142f4a.png][file:../figs/fig1.png]]
21
+ [[file:../figs/fig2.png]]
22
22
 
23
23
 
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.29
4
+ version: 0.1.34
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-11-26 00:00:00.000000000 Z
11
+ date: 2020-12-18 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -562,10 +562,7 @@ files:
562
562
  - gems/ruby/2.7.0/cache/yard-activesupport-concern-0.0.1.gem
563
563
  - gems/ruby/2.7.0/extensions/x86_64-darwin-17/2.7.0/ffi-1.13.1/ffi_c.bundle
564
564
  - gems/ruby/2.7.0/extensions/x86_64-darwin-17/2.7.0/ffi-1.13.1/gem.build_complete
565
- - gems/ruby/2.7.0/extensions/x86_64-darwin-17/2.7.0/ffi-1.13.1/gem_make.out
566
- - gems/ruby/2.7.0/extensions/x86_64-darwin-17/2.7.0/ffi-1.13.1/mkmf.log
567
565
  - gems/ruby/2.7.0/extensions/x86_64-darwin-17/2.7.0/redcarpet-3.5.0/gem.build_complete
568
- - gems/ruby/2.7.0/extensions/x86_64-darwin-17/2.7.0/redcarpet-3.5.0/gem_make.out
569
566
  - gems/ruby/2.7.0/extensions/x86_64-darwin-17/2.7.0/redcarpet-3.5.0/redcarpet.bundle
570
567
  - gems/ruby/2.7.0/gems/coderay-1.1.3/MIT-LICENSE
571
568
  - gems/ruby/2.7.0/gems/coderay-1.1.3/README_INDEX.rdoc
@@ -784,7 +781,6 @@ files:
784
781
  - gems/ruby/2.7.0/gems/ffi-1.13.1/ext/ffi_c/libffi-x86_64-darwin17/.libs/libffi.lai
785
782
  - gems/ruby/2.7.0/gems/ffi-1.13.1/ext/ffi_c/libffi-x86_64-darwin17/.libs/libffi_convenience.la
786
783
  - gems/ruby/2.7.0/gems/ffi-1.13.1/ext/ffi_c/libffi-x86_64-darwin17/Makefile
787
- - gems/ruby/2.7.0/gems/ffi-1.13.1/ext/ffi_c/libffi-x86_64-darwin17/config.log
788
784
  - gems/ruby/2.7.0/gems/ffi-1.13.1/ext/ffi_c/libffi-x86_64-darwin17/config.status
789
785
  - gems/ruby/2.7.0/gems/ffi-1.13.1/ext/ffi_c/libffi-x86_64-darwin17/fficonfig.h
790
786
  - gems/ruby/2.7.0/gems/ffi-1.13.1/ext/ffi_c/libffi-x86_64-darwin17/include/Makefile
@@ -2558,32 +2554,32 @@ files:
2558
2554
  - lib/qiita_org/.qiita.conf
2559
2555
  - lib/qiita_org/access_qiita.rb
2560
2556
  - lib/qiita_org/all.rb
2561
- - lib/qiita_org/check_pc_os.rb
2557
+ - lib/qiita_org/base.rb
2562
2558
  - lib/qiita_org/config.json
2563
2559
  - lib/qiita_org/config.rb
2564
- - lib/qiita_org/decide_option.rb
2565
2560
  - lib/qiita_org/error_message.rb
2566
- - lib/qiita_org/file_open.rb
2567
2561
  - lib/qiita_org/get.rb
2568
- - lib/qiita_org/get_file_path.rb
2569
- - lib/qiita_org/get_file_url.rb
2570
2562
  - lib/qiita_org/get_multiple_files.rb
2571
2563
  - lib/qiita_org/get_template.rb
2572
2564
  - lib/qiita_org/hoge.txt
2573
2565
  - lib/qiita_org/list.rb
2574
2566
  - lib/qiita_org/md_converter_for_image.rb
2567
+ - lib/qiita_org/old_programs/check_pc_os.rb
2568
+ - lib/qiita_org/old_programs/decide_option.rb
2569
+ - lib/qiita_org/old_programs/file_open.rb
2570
+ - lib/qiita_org/old_programs/get_file_path.rb
2571
+ - lib/qiita_org/old_programs/get_file_url.rb
2572
+ - lib/qiita_org/old_programs/search_conf_path.rb
2573
+ - lib/qiita_org/old_programs/select_path.rb
2574
+ - lib/qiita_org/old_programs/set_config.rb
2575
+ - lib/qiita_org/old_programs/show_file_and_url.rb
2575
2576
  - lib/qiita_org/ox-qmd/ox-qmd.el
2576
2577
  - lib/qiita_org/post.rb
2577
- - lib/qiita_org/search_conf_path.rb
2578
- - lib/qiita_org/select_path.rb
2579
- - lib/qiita_org/set_config.rb
2580
- - lib/qiita_org/show_file_and_url.rb
2581
2578
  - lib/qiita_org/template.org
2582
2579
  - lib/qiita_org/upload.rb
2583
2580
  - lib/qiita_org/version.rb
2584
2581
  - qiita_org.gemspec
2585
2582
  - tests/hoge.rb
2586
- - tests/template.org
2587
2583
  - tests/test.html
2588
2584
  - tests/test.org
2589
2585
  - tests/test2.org
@@ -1,13 +0,0 @@
1
- #+OPTIONS: ^:{}
2
- #+STARTUP: indent nolineimages
3
- #+TITLE: title
4
- #+AUTHOR: Kenta Yamamoto
5
- #+EMAIL: (concat "doi35077@kwansei.ac.jp")
6
- #+LANGUAGE: jp
7
- # +OPTIONS: H:4 toc:t num:2
8
- #+OPTIONS: toc:nil
9
- #+TAG: tag1, tag2
10
- #+TWITTER: off
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)