class QiitaGet

Public Class Methods

new(mode, id) click to toggle source
# File lib/qiita_org/get.rb, line 10
def initialize(mode, id)
  @mode = mode
  @get_id = id
  @base = QiitaBase.new()
end

Public Instance Methods

check_mode() click to toggle source

check mode

# File lib/qiita_org/get.rb, line 69
def check_mode()
  if @private
    @mode = "private"
  else
    @mode = "public"
  end
end
convert_md_to_org() click to toggle source

id.md -> id.org

# File lib/qiita_org/get.rb, line 46
def convert_md_to_org()
  system "pandoc #{@id}.md -o #{@id}.org"
end
get_id_report() click to toggle source
# File lib/qiita_org/get.rb, line 94
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()

  @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) click to toggle source

see massage and delete id.md

# File lib/qiita_org/get.rb, line 88
def puts_massage_and_delete_md(item)
  puts "created #{@id}.org".green
  puts "URL: #{item["url"]}"
  system "rm -f #{@id}.md"
end
run() click to toggle source
# File lib/qiita_org/get.rb, line 120
def run()
  @access_token, @teams_url, @display, @ox_qmd_load_path = @base.set_config()
  if @mode == "teams"
    ErrorMessage.new().teams_url_error(@teams_url)
  end

  if @get_id == nil
    @qiita, @path = @base.select_access_path(@mode, @teams_url)
    @items = AccessQiita.new(@access_token, @qiita, @path).access_qiita()
    select_report()
  else
    get_id_report()
  end
end
select_report() click to toggle source

select report

# File lib/qiita_org/get.rb, line 17
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_header() click to toggle source

set header

# File lib/qiita_org/get.rb, line 51
  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_org() click to toggle source

write header

# File lib/qiita_org/get.rb, line 78
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