qiita_org 0.1.28 → 0.1.33

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 74ddc5ddc92c8e9414041e6bc9b84b7d96eccf5cc7adba92101440bf70472d65
4
- data.tar.gz: fb223cc7d3dbbe232067a5f38dcca6d1f953064972f60307ba206b2fdccf8962
3
+ metadata.gz: c62db4cbaa124181ee7ac6a7051ee752f5ba1a11ea4bdc3b949880b859de183b
4
+ data.tar.gz: 0400a11c712f89e91977560e659505306e8b366a25ff57fc0f06f1a3b4db6dad
5
5
  SHA512:
6
- metadata.gz: e4dff3873fccd45d6ee707679bb0204076b402183d59b1f4c9d40bb05fe1a27d1d50b04299ff00bf5ce9461aea560426e508ba7ba291aa80cdb548a5d2c0b494
7
- data.tar.gz: 72896ad25f227b1cbc0992518a3173b0e2d64ee684be3d2f06db83278ba871abee3331fcd30923a88d4aa6114be93484e6f9dbe096bd5c4e9abfb69db6c1e05e
6
+ metadata.gz: dae78c2320afc2a1a0efe7ec593a3c074a3dfc256460388105ff969b69ea0a213c418d025e55bf2556a7b0927691234fd485eaed3d839d5c93a1e477a969090e
7
+ data.tar.gz: 8b4517c1aebd8150c00b956703958d4fb2a72fb00b7307b7aceefc19c188bed90e3b187d06f9b0f04c439e2bfda785bcb5a31ce221d78a5546d60dd9175f6551
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- qiita_org (0.1.27)
4
+ qiita_org (0.1.31)
5
5
  colorize
6
6
  command_line (> 2.0.0)
7
7
  fileutils
@@ -9,12 +9,13 @@ 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"
12
+ #require "qiita_org/check_pc_os"
13
13
  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"
14
+ #require "qiita_org/get_file_path"
15
+ #require "qiita_org/show_file_and_url"
16
+ #require "qiita_org/decide_option"
17
17
  require "qiita_org/get_multiple_files"
18
+ require "qiita_org/base"
18
19
  #require "qiita_org/qiita_org_thor"
19
20
 
20
21
  module QiitaOrg
@@ -25,6 +26,7 @@ module QiitaOrg
25
26
  #
26
27
  def initialize(*argv)
27
28
  super(*argv)
29
+ @base = QiitaBase.new()
28
30
  end
29
31
 
30
32
  desc "say_hello", "say_hello"
@@ -37,17 +39,21 @@ module QiitaOrg
37
39
  desc "post [FILE] [private/public/teams]", "post to qiita from org"
38
40
 
39
41
  def post(*argv)
40
- checkos = CheckPcOs.new
41
- os = checkos.return_os()
42
+ #checkos = CheckPcOs.new
43
+ #os = checkos.return_os()
44
+ os = @base.check_pc_os()
42
45
 
43
46
  if argv.size > 2
44
47
  GetMultipleFiles.new(argv, os, "post").run()
45
- elsif argv[-1].match(/(.+).org/) && argv.size != 1
46
- GetMultipleFiles.new(argv, os, "post").run()
48
+ elsif argv.size > 1
49
+ if argv[-1].match(/(.+).org/)
50
+ GetMultipleFiles.new(argv, os, "post").run()
51
+ end
47
52
  else
48
53
  p ["in qiita_org.rb", argv]
49
54
  p file = argv[0] || "README.org"
50
- p mode = argv[1] || DecideOption.new(file).decide_option()
55
+ #p mode = argv[1] || DecideOption.new(file).decide_option()
56
+ p mode = argv[1] || @base.pick_up_option(file)
51
57
  qiita = QiitaPost.new(file, mode, os)
52
58
  begin
53
59
  qiita.select_option(mode)
@@ -62,35 +68,23 @@ module QiitaOrg
62
68
  desc "upload [FILE] [teams/public/private]", "upload about image to qiita"
63
69
 
64
70
  def upload(*argv)
65
- checkos = CheckPcOs.new
66
- os = checkos.return_os()
71
+ #checkos = CheckPcOs.new
72
+ #os = checkos.return_os()
73
+ os = @base.check_pc_os()
67
74
 
68
75
  if argv.size > 2
69
76
  GetMultipleFiles.new(argv, os, "upload").run()
70
- elsif argv[-1].match(/(.+).org/) && argv.size != 1
71
- GetMultipleFiles.new(argv, os, "upload").run()
77
+ elsif argv.size > 1
78
+ if argv[-1].match(/(.+).org/)
79
+ GetMultipleFiles.new(argv, os, "upload").run()
80
+ end
72
81
  else
73
82
  p file = argv[0] || "README.org"
74
- p mode = argv[1] || DecideOption.new(file).decide_option()
83
+ #p mode = argv[1] || DecideOption.new(file).decide_option()
84
+ p mode = argv[1] || @base.pick_up_option(file)
75
85
 
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()
91
- end
86
+ qiita = QiitaFileUpLoad.new(file, mode, os).upload()
92
87
  end
93
- =end
94
88
  end
95
89
 
96
90
  desc "config [global/local] [option] [input]", "set config"
@@ -115,17 +109,20 @@ module QiitaOrg
115
109
  desc "template", "make template.org"
116
110
 
117
111
  def template(*argv)
118
- checkos = CheckPcOs.new
119
- os = checkos.return_os()
112
+ #checkos = CheckPcOs.new
113
+ #os = checkos.return_os()
114
+ os = @base.check_pc_os()
115
+ filename = argv[0] || "template.org"
116
+ filename = (filename.include?(".org"))? filename : "#{filename}.org"
120
117
 
121
- template = QiitaGetTemplate.new(os).run()
118
+ template = QiitaGetTemplate.new(os, filename).run()
122
119
  end
123
120
 
124
- desc "all", "post all org files in the directory"
121
+ desc "all [teams/public/private] [options]", "post all org files in the directory"
125
122
 
126
123
  def all(*argv)
127
- mode = argv[0] || false
128
- QiitaAll.new(mode).run()
124
+ #mode = argv[0] || false
125
+ QiitaAll.new(argv).run()
129
126
  end
130
127
 
131
128
  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,18 @@
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
+ if @exclude_files.include?(file)
14
+ next
15
+ end
14
16
  end
15
17
 
16
18
  unless @mode
@@ -28,4 +30,20 @@ class QiitaAll
28
30
  end
29
31
  end
30
32
  end
33
+
34
+ def check_options(string)
35
+ ["teams", "private", "public"].each do |i|
36
+ if string.include?(i)
37
+ @mode = i
38
+ break
39
+ else
40
+ @mode = false
41
+ end
42
+ end
43
+
44
+ @exclude_files = []
45
+ if string.include?("--exclude")
46
+ @exclude_files = string.grep(/.org/)
47
+ end
48
+ end
31
49
  end
@@ -0,0 +1,88 @@
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
+ end
@@ -7,8 +7,9 @@ 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
+ #search = SearchConfPath.new(Dir.pwd, Dir.home)
11
+ #conf_dir = search.search_conf_path()
12
+ conf_dir = QiitaBase.new().search_conf_path(Dir.pwd, Dir.home)
12
13
  if @option == "set"
13
14
  @setup = File.join(Dir.pwd, ".qiita.conf")
14
15
  else
@@ -3,8 +3,8 @@ 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"
6
+ #require "qiita_org/select_path.rb"
7
+ #require "qiita_org/set_config.rb"
8
8
  require "qiita_org/error_message.rb"
9
9
  require "qiita_org/access_qiita.rb"
10
10
 
@@ -12,47 +12,10 @@ class QiitaGet
12
12
  def initialize(mode, id)
13
13
  @mode = mode
14
14
  @get_id = id
15
- @selectpath = SelectPath.new()
15
+ @base = QiitaBase.new()
16
+ # @selectpath = SelectPath.new()
16
17
  end
17
18
 
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
19
  # select report
57
20
  def select_report()
58
21
  @items.each do |item|
@@ -159,13 +122,13 @@ EOS
159
122
  end
160
123
 
161
124
  def run()
162
- @access_token, @teams_url, @display, @ox_qmd_load_path = SetConfig.new().set_config()
125
+ @access_token, @teams_url, @display, @ox_qmd_load_path = @base.set_config()
163
126
  if @mode == "teams"
164
127
  ErrorMessage.new().teams_url_error(@teams_url)
165
128
  end
166
129
 
167
130
  if @get_id == nil
168
- @qiita, @path = @selectpath.select_path(@mode, @teams_url)
131
+ @qiita, @path = @base.select_access_path(@mode, @teams_url)
169
132
  @items = AccessQiita.new(@access_token, @qiita, @path).access_qiita()
170
133
  select_report()
171
134
  else
@@ -2,7 +2,7 @@ require "colorize"
2
2
  #require "../qiita_org/qiita_org.rb"
3
3
  require "qiita_org/post.rb"
4
4
  require "qiita_org/upload.rb"
5
- require "qiita_org/decide_option.rb"
5
+ #require "qiita_org/decide_option.rb"
6
6
 
7
7
  class GetMultipleFiles
8
8
  def initialize(files, os, type)
@@ -19,7 +19,8 @@ class GetMultipleFiles
19
19
  def run()
20
20
  puts "post files: #{@files}".green
21
21
  @files.each do |file|
22
- mode = @option || DecideOption.new(file).decide_option()
22
+ #mode = @option || DecideOption.new(file).decide_option()
23
+ mode = @option || QiitaBase.new().pick_up_option(file)
23
24
  puts "qiita #{@type} #{file} #{mode}".green
24
25
  if @type == "post"
25
26
  qiita = QiitaPost.new(file, mode, @os)
@@ -31,7 +32,7 @@ class GetMultipleFiles
31
32
  qiita.run
32
33
  end
33
34
  elsif @type == "upload"
34
- UpLoad.new(file, mode, @os).upload()
35
+ QiitaFileUpLoad.new(file, mode, @os).upload()
35
36
  end
36
37
  end
37
38
  end
@@ -1,14 +1,16 @@
1
1
  require "fileutils"
2
2
  require "colorize"
3
3
  require "kconv"
4
- require "qiita_org/search_conf_path"
4
+ #require "qiita_org/search_conf_path"
5
5
  require "qiita_org/error_message.rb"
6
6
 
7
7
  class QiitaGetTemplate
8
- def initialize(os)
8
+ def initialize(os, filename)
9
9
  @os = os
10
- search = SearchConfPath.new(Dir.pwd, Dir.home)
11
- @conf_dir = search.search_conf_path()
10
+ @filename = filename
11
+ #search = SearchConfPath.new(Dir.pwd, Dir.home)
12
+ # @conf_dir = search.search_conf_path()
13
+ @conf_dir = QiitaBase.new().search_conf_path(Dir.pwd, Dir.home)
12
14
  # check_write_header()
13
15
  end
14
16
 
@@ -18,9 +20,9 @@ class QiitaGetTemplate
18
20
  m = []
19
21
  m = version.match(/ProductName:\t(.+)\nProductVersion:\t(.+)\nBuildVersion:\t(.+)\n/)
20
22
  system 'rm hoge.txt'
21
- conts = File.read("template.org")
23
+ conts = File.read(@filename)
22
24
  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")
25
+ File.write(@filename, conts) # + "# {m[1]}: # {m[2]}\n")
24
26
  end
25
27
 
26
28
  def get_windowsos_version()
@@ -33,9 +35,9 @@ class QiitaGetTemplate
33
35
  m2 = version2.match(/OSArchitecture\n(.+)-bit/)
34
36
  system 'rm hoge1.txt'
35
37
  system 'rm hoge2.txt'
36
- conts = File.read("template.org")
38
+ conts = File.read(@filename)
37
39
  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")
40
+ File.write(@filename, conts) # + "# {m[1]}: # {m[2]}\n")
39
41
  end
40
42
 
41
43
  def get_ubuntu_version()
@@ -44,9 +46,9 @@ class QiitaGetTemplate
44
46
  m = []
45
47
  m = version.match(/(.+) (.+) LTS /)
46
48
  system 'rm hoge.txt'
47
- conts = File.read("template.org")
49
+ conts = File.read(@filename)
48
50
  conts << "![#{m[1]}-#{m[2]}](https://img.shields.io/badge/#{m[1]}-#{m[2]}-brightgreen) "
49
- File.write("template.org", conts)
51
+ File.write(@filename, conts)
50
52
  end
51
53
 
52
54
  def get_ruby_version()
@@ -55,9 +57,9 @@ class QiitaGetTemplate
55
57
  m = []
56
58
  m = version.match(/ruby (.+) \((.+)/)
57
59
  system 'rm hoge.txt'
58
- conts = File.read("template.org")
60
+ conts = File.read(@filename)
59
61
  conts << "![ruby-#{m[1]}](https://img.shields.io/badge/ruby-#{m[1].gsub(" ", "")}-brightgreen) "
60
- File.write("template.org", conts) # + "ruby: # {m[1]}\n")
62
+ File.write(@filename, conts) # + "ruby: # {m[1]}\n")
61
63
  end
62
64
 
63
65
  # cp template.org
@@ -65,11 +67,11 @@ class QiitaGetTemplate
65
67
  lib = File.expand_path("../../../lib", __FILE__)
66
68
  cp_file = File.join(lib, "qiita_org", "template.org")
67
69
 
68
- if File.exists?("./template.org")
69
- puts "template.org exists.".red
70
+ if File.exists?("./#{@filename}")
71
+ puts "#{@filename} exists.".red
70
72
  exit
71
73
  else
72
- FileUtils.cp(cp_file, ".", verbose: true)
74
+ FileUtils.cp(cp_file, @filename, verbose: true)
73
75
  end
74
76
  end
75
77
 
@@ -115,31 +117,15 @@ class QiitaGetTemplate
115
117
  end
116
118
  end
117
119
 
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
120
  def set_name_and_email()
135
121
  conf_path = File.join(@conf_dir, ".qiita.conf")
136
122
  conf = JSON.load(File.read(conf_path))
137
123
  name = conf["name"]
138
124
  email = conf["email"]
139
- conts = File.readlines("template.org")
125
+ conts = File.readlines(@filename)
140
126
  conts[3] = "#+AUTHOR: #{name}\n"
141
127
  conts[4] = "#+EMAIL: (concat \"#{email}\")\n"
142
- File.write("template.org", conts.join)
128
+ File.write(@filename, conts.join)
143
129
  end
144
130
 
145
131
  def run()
@@ -2,54 +2,27 @@ 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"
5
+ #require "qiita_org/select_path.rb"
6
+ #require "qiita_org/set_config.rb"
7
7
  require "qiita_org/error_message.rb"
8
8
  require "qiita_org/access_qiita.rb"
9
9
 
10
10
  class QiitaList
11
11
  def initialize(mode)
12
12
  @mode = mode
13
- @access_token, @teams_url, @display, @ox_qmd_load_path = SetConfig.new().set_config()
13
+ @base = QiitaBase.new
14
+ # @access_token, @teams_url, @display, @ox_qmd_load_path = SetConfig.new().set_config()
15
+ @access_token, @teams_url, @display, @ox_qmd_load_path = @base.set_config()
14
16
  if @mode == "teams"
15
17
  ErrorMessage.new().teams_url_error(@teams_url)
16
18
  end
17
19
 
18
- @qiita, @path = SelectPath.new().select_path(@mode, @teams_url)
20
+ # @qiita, @path = SelectPath.new().select_path(@mode, @teams_url)
21
+ @qiita, @path = @base.select_access_path(@mode, @teams_url)
19
22
  @items = AccessQiita.new(@access_token, @qiita, @path).access_qiita()
20
23
  view_list()
21
24
  end
22
25
 
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
26
  def view_list()
54
27
  @items.each do |item|
55
28
  puts "title: #{item["title"]}"
@@ -3,6 +3,7 @@ require "qiita_org/get_file_url.rb"
3
3
  require "qiita_org/set_config.rb"
4
4
  require "qiita_org/access_qiita.rb"
5
5
  require "qiita_org/file_open.rb"
6
+ require "qiita_org/error_message.rb"
6
7
 
7
8
  class ShowFile
8
9
  def initialize(paths, src, mode, os)
@@ -52,7 +53,7 @@ class ShowFile
52
53
 
53
54
  @access_token, @teams_url, @display, @ox_qmd_load_path = SetConfig.new().set_config()
54
55
  if @mode == "teams"
55
- ErrorMassage.new().teams_url_error(@teams_url)
56
+ ErrorMessage.new().teams_url_error(@teams_url)
56
57
  end
57
58
 
58
59
  qiita = (@mode == "teams") ? @teams_url : "https://qiita.com/"
@@ -5,15 +5,17 @@ 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"
8
+ #require "qiita_org/set_config.rb"
9
9
  require "qiita_org/error_message"
10
10
  require "qiita_org/file_open.rb"
11
+ require "qiita_org/access_qiita.rb"
11
12
 
12
13
  class QiitaPost
13
14
  def initialize(file, option, os)
14
15
  @src = file
15
16
  @option = (option == "qiita" || option == "open")? "public" : option
16
17
  @os = os
18
+ @base = QiitaBase.new
17
19
  end
18
20
 
19
21
  public
@@ -64,6 +66,26 @@ class QiitaPost
64
66
  return qiita_id, patch
65
67
  end
66
68
 
69
+ def check_change_public(conts, option, id)
70
+ qiita = "https://qiita.com/"
71
+ path = "api/v2/items/#{id}"
72
+ items = AccessQiita.new(@access_token, qiita, path).access_qiita()
73
+
74
+ if items["private"]
75
+ return conts, option
76
+ else
77
+ option = "public"
78
+ lines = File.readlines(@src)
79
+ file = File.open(@src, "w")
80
+ lines.each_with_index do |line, i|
81
+ lines[i] = "#+qiita_#{option}: #{id}\n" if line.match(/\#\+qiita_private: (.+)/)
82
+ file.print(lines[i])
83
+ end
84
+ conts = File.read(@src)
85
+ return conts, option
86
+ end
87
+ end
88
+
67
89
  # check twitter post
68
90
  def select_twitter(conts, option)
69
91
  option == "public" && conts.match?(/^\#\+twitter:\s*on$/i)
@@ -146,24 +168,11 @@ class QiitaPost
146
168
  end
147
169
  end
148
170
 
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
171
  def run()
164
172
  @conts = File.read(@src)
165
173
  @title, @tags = get_title_tags(@conts)
166
- @access_token, @teams_url, @display, @ox_qmd_load_path = SetConfig.new().set_config()
174
+ # @access_token, @teams_url, @display, @ox_qmd_load_path = SetConfig.new().set_config()
175
+ @access_token, @teams_url, @display, @ox_qmd_load_path = @base.set_config()
167
176
 
168
177
  if @option == "teams"
169
178
  ErrorMessage.new().teams_url_error(@teams_url)
@@ -173,6 +182,7 @@ class QiitaPost
173
182
  add_source_path_in_md()
174
183
  @lines = MdConverter.new().convert_for_image(@lines)
175
184
  @qiita_id, @patch = select_patch_or_post(@conts, @option)
185
+ @conts, @option = check_change_public(@conts, @option, @qiita_id) if (@patch and @option == "private")
176
186
  @twitter = select_twitter(@conts, @option)
177
187
  @qiita, @private = select_option(@option)
178
188
  @res = qiita_post()
@@ -1,32 +1,40 @@
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"
3
+ #require "qiita_org/get_file_path.rb"
4
+ #require "qiita_org/show_file_and_url.rb"
5
5
  require "qiita_org/file_open.rb"
6
- require "qiita_org/set_config.rb"
6
+ #require "qiita_org/set_config.rb"
7
7
  require "qiita_org/access_qiita.rb"
8
8
 
9
- class QiitaUpLoad
9
+ class QiitaFileUpLoad
10
10
  def initialize(src, option, os)
11
11
  @src = src
12
12
  @option = (option == "qiita" || option == "open")? "public" : option
13
13
  @os = os
14
14
  @fileopen = FileOpen.new(@os)
15
+ # @access_token, @teams_url, @display, @ox_qmd_load_path = SetConfig.new().set_config()
16
+ @access_token, @teams_url, @display, @ox_qmd_load_path = QiitaBase.new().set_config()
17
+ if @option == "teams"
18
+ ErrorMessage.new().teams_url_error(@teams_url)
19
+ end
15
20
  end
16
21
 
17
22
  def upload()
18
- paths = GetFilePath.new(@src).get_file_path()
19
- #paths = get_file_path(@src)
23
+ #paths = GetFilePath.new(@src).get_file_path()
24
+ paths = get_file_path(@src)
20
25
  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()
26
+ #showfile = ShowFile.new(paths, @src, @option, @os)
27
+ #showfile.open_file_dir()
28
+ open_file_dir(paths)
29
+ #showfile.open_qiita()
30
+ open_qiita()
24
31
 
25
32
  puts "Overwrite file URL's on #{@src}? (y/n)".green
26
33
  ans = STDIN.getch
27
34
 
28
35
  if ans == "y"
29
- showfile.input_url_to_org()
36
+ #showfile.input_url_to_org()
37
+ input_url_to_org(paths)
30
38
  end
31
39
  else
32
40
  puts "file path is empty.".red
@@ -65,17 +73,20 @@ class QiitaUpLoad
65
73
 
66
74
  def open_qiita()
67
75
  conts = File.read(@src)
68
- id = conts.match(/\#\+qiita_#{option}: (.+)/)[1]
76
+ id = conts.match(/\#\+qiita_#{@option}: (.+)/)[1]
69
77
 
78
+ =begin
70
79
  @access_token, @teams_url, @display, @ox_qmd_load_path = SetConfig.new().set_config()
71
80
  if @option == "teams"
72
81
  ErrorMassage.new().teams_url_error(@teams_url)
73
82
  end
83
+ =end
74
84
 
75
85
  qiita = (@option == "teams") ? @teams_url : "https://qiita.com/"
76
86
  path = "api/v2/items/#{id}"
77
87
 
78
- items = AccessQiita.new(@access_token, qiita, path).access_qiita()
88
+ @access = AccessQiita.new(@access_token, qiita, path)
89
+ items = @access.access_qiita()
79
90
 
80
91
  @fileopen.file_open(items["url"])
81
92
  end
@@ -87,7 +98,12 @@ class QiitaUpLoad
87
98
 
88
99
  paths.each do |path|
89
100
  file_name = File.basename(path).strip
90
- url = get_file_url(id, file_name)
101
+ #url = (get_file_url(id, file_name)) ? @file_url : next
102
+ if get_file_url(id, file_name)
103
+ url = @file_url
104
+ else
105
+ next
106
+ end
91
107
  lines.each_with_index do |line, i|
92
108
  if line.match(/\[\[file:#{path}\]\]/)
93
109
  lines[i] = "[[#{url}][file:#{path}]]\n"
@@ -97,4 +113,20 @@ class QiitaUpLoad
97
113
 
98
114
  File.write(@src, lines.join)
99
115
  end
116
+
117
+ def get_file_url(id, file_name)
118
+ qiita = (@option == "teams")? @teams_url : "https://qiita.com/"
119
+ path = "api/v2/items/#{@id}"
120
+
121
+ items = @access.access_qiita()
122
+
123
+ if items["body"].match?(/\!\[#{file_name}\]\(((.+))\)/)
124
+ @file_url = items["body"].match(/\!\[#{file_name}\]\(((.+))\)/)[2]
125
+ puts "Wrote #{file_name}'s URL".green
126
+ return true
127
+ else
128
+ puts "Can not find #{file_name}'s URL".red
129
+ return false
130
+ end
131
+ end
100
132
  end
@@ -1,3 +1,3 @@
1
1
  module QiitaOrg
2
- VERSION = "0.1.28"
2
+ VERSION = "0.1.33"
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.28
4
+ version: 0.1.33
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-24 00:00:00.000000000 Z
11
+ date: 2020-12-17 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -2558,32 +2558,32 @@ files:
2558
2558
  - lib/qiita_org/.qiita.conf
2559
2559
  - lib/qiita_org/access_qiita.rb
2560
2560
  - lib/qiita_org/all.rb
2561
- - lib/qiita_org/check_pc_os.rb
2561
+ - lib/qiita_org/base.rb
2562
2562
  - lib/qiita_org/config.json
2563
2563
  - lib/qiita_org/config.rb
2564
- - lib/qiita_org/decide_option.rb
2565
2564
  - lib/qiita_org/error_message.rb
2566
2565
  - lib/qiita_org/file_open.rb
2567
2566
  - lib/qiita_org/get.rb
2568
- - lib/qiita_org/get_file_path.rb
2569
- - lib/qiita_org/get_file_url.rb
2570
2567
  - lib/qiita_org/get_multiple_files.rb
2571
2568
  - lib/qiita_org/get_template.rb
2572
2569
  - lib/qiita_org/hoge.txt
2573
2570
  - lib/qiita_org/list.rb
2574
2571
  - lib/qiita_org/md_converter_for_image.rb
2572
+ - lib/qiita_org/old_programs/check_pc_os.rb
2573
+ - lib/qiita_org/old_programs/decide_option.rb
2574
+ - lib/qiita_org/old_programs/get_file_path.rb
2575
+ - lib/qiita_org/old_programs/get_file_url.rb
2576
+ - lib/qiita_org/old_programs/search_conf_path.rb
2577
+ - lib/qiita_org/old_programs/select_path.rb
2578
+ - lib/qiita_org/old_programs/set_config.rb
2579
+ - lib/qiita_org/old_programs/show_file_and_url.rb
2575
2580
  - lib/qiita_org/ox-qmd/ox-qmd.el
2576
2581
  - 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
2582
  - lib/qiita_org/template.org
2582
2583
  - lib/qiita_org/upload.rb
2583
2584
  - lib/qiita_org/version.rb
2584
2585
  - qiita_org.gemspec
2585
2586
  - tests/hoge.rb
2586
- - tests/template.org
2587
2587
  - tests/test.html
2588
2588
  - tests/test.org
2589
2589
  - 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)