qiita_org 0.1.28 → 0.1.33

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: 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)