Class: QiitaGet

Inherits:
Object
  • Object
show all
Defined in:
lib/qiita_org/get.rb

Instance Method Summary collapse

Constructor Details

#initialize(mode, id) ⇒ QiitaGet

Returns a new instance of QiitaGet.



12
13
14
15
16
# File 'lib/qiita_org/get.rb', line 12

def initialize(mode, id)
  @mode = mode
  @get_id = id
  @selectpath = SelectPath.new()
end

Instance Method Details

#check_modeObject

check mode



109
110
111
112
113
114
115
# File 'lib/qiita_org/get.rb', line 109

def check_mode()
  if @private
    @mode = "private"
  else
    @mode = "public"
  end
end

#convert_md_to_orgObject

id.md -> id.org



86
87
88
# File 'lib/qiita_org/get.rb', line 86

def convert_md_to_org()
  system "pandoc #{@id}.md -o #{@id}.org"
end

#get_id_reportObject



134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
# File 'lib/qiita_org/get.rb', line 134

def get_id_report()
  case @mode
  when "teams"
    @qiita = @teams_url
  else
    @qiita = "https://qiita.com/"
  end
  @path = "api/v2/items/#{@get_id}"

  @items = AccessQiita.new(@access_token, @qiita, @path).access_qiita()
  #access_qiita()

  @title = @items["title"]
  @id = @items["id"]
  @author = @items["user"]["id"]
  @tags = []
  @private = @items["private"]
  @items["tags"].each do |tag|
    @tags << tag["name"]
  end
  p filename = "#{@id}.md"
  File.write(filename, @items["body"])
  convert_md_to_org()
  write_header_on_org()
  puts_massage_and_delete_md(@items)
end

#puts_massage_and_delete_md(item) ⇒ Object

see massage and delete id.md



128
129
130
131
132
# File 'lib/qiita_org/get.rb', line 128

def puts_massage_and_delete_md(item)
  puts "created #{@id}.org".green
  puts "URL: #{item["url"]}"
  system "rm -f #{@id}.md"
end

#runObject



161
162
163
164
165
166
167
168
169
170
171
172
173
174
# File 'lib/qiita_org/get.rb', line 161

def run()
  @access_token, @teams_url, @display, @ox_qmd_load_path = SetConfig.new().set_config()
  if @mode == "teams"
    ErrorMessage.new().teams_url_error(@teams_url)
  end

  if @get_id == nil
    @qiita, @path = @selectpath.select_path(@mode, @teams_url)
    @items = AccessQiita.new(@access_token, @qiita, @path).access_qiita()
    select_report()
  else
    get_id_report()
  end
end

#select_reportObject

select report



57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
# File 'lib/qiita_org/get.rb', line 57

def select_report()
  @items.each do |item|
    p "title: #{item["title"]}"
    p "Do you gets it?(y/n), ('e' to exit)"
    p ans = STDIN.getch

    next if ans == "n"
    if ans == "e"
      break
    end
    if ans == "y"
      p @title = item["title"] #.gsub(/ |\(|\)/, " " => "_", "(" => "", ")" => "")
      @id = item["id"]
      @author = item["user"]["id"]
      @tags = []
      @private = item["private"]
      item["tags"].each do |tag|
        @tags << tag["name"]
      end
      p filename = "#{@id}.md"
      File.write(filename, item["body"])
      convert_md_to_org()
      write_header_on_org()
      puts_massage_and_delete_md(item)
    end
  end
end

#set_headerObject

set header



91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
# File 'lib/qiita_org/get.rb', line 91

def set_header()
  head = <<"EOS"
#+OPTIONS: ^:{}
#+STARTUP: indent nolineimages
#+TITLE: #{@title}
#+AUTHOR: #{@author}
#+EMAIL:
#+LANGUAGE:  jp
# +OPTIONS:   H:4 toc:t num:2
#+OPTIONS:   toc:nil
#+TAG: #{@tags.join(", ")}
#+SETUPFILE: ~/.emacs.d/org-mode/theme-readtheorg.setup\n
EOS

  return head
end

#write_header_on_orgObject

write header



118
119
120
121
122
123
124
125
# File 'lib/qiita_org/get.rb', line 118

def write_header_on_org()
  head = set_header()

  check_mode() if @mode != "teams"

  conts = File.read("#{@id}.org")
  File.write("#{@id}.org", "#+qiita_#{@mode}: #{@id}\n" + head + conts)
end