diff --git a/.gitignore b/.gitignore index 90ac19e..78affe7 100644 --- a/.gitignore +++ b/.gitignore @@ -1,5 +1,4 @@ .session_secret -.gitea_token public/files/* !public/files/.gitkeep data/labels/* diff --git a/app.rb b/app.rb index 7df7053..3bf9500 100644 --- a/app.rb +++ b/app.rb @@ -3,7 +3,6 @@ require 'sinatra' require "sinatra/reloader" require 'tmpdir' require 'net/http' -require 'json' require_relative 'lib/receipt_builder' require_relative 'lib/label_repository' @@ -155,45 +154,6 @@ helpers do receipt.print!(PRINTER_DEVICE_EPSON) end - GITEA_TOKEN_FILE = File.join(File.dirname(__FILE__), '.gitea_token') - - def fetch_open_issues(repo) - token = File.read(GITEA_TOKEN_FILE).strip - uri = URI("https://git.priesol.net/api/v1/repos/randy/#{repo}/issues?state=open&type=issues&limit=50") - req = Net::HTTP::Get.new(uri) - req['Authorization'] = "token #{token}" - res = Net::HTTP.start(uri.host, uri.port, use_ssl: true) { |http| http.request(req) } - raise "Gitea API returned #{res.code}" unless res.is_a?(Net::HTTPSuccess) - - JSON.parse(res.body) - end - - # Prints a receipt-style summary of a repo's open issues -- number, title, - # labels, one separator per issue, total at the end. - def print_issues(repo) - issues = fetch_open_issues(repo).sort_by { |i| i['number'] } - - receipt = ReceiptBuilder.new - receipt.align(:center).bold.text("Open issues: #{repo}\n").bold(false) - receipt.text("#{Time.now.strftime('%Y-%m-%d %H:%M')}\n") - receipt.align(:left).text(('-' * 32) + "\n") - - if issues.empty? - receipt.text("(no open issues)\n") - else - issues.each do |issue| - receipt.bold.text("##{issue['number']} #{issue['title']}\n").bold(false) - labels = issue['labels'].map { |l| l['name'] }.join(', ') - receipt.text("#{labels}\n") unless labels.empty? - receipt.text(('-' * 32) + "\n") - end - end - - receipt.text("Total: #{issues.size}\n") - receipt.feed(3).cut - receipt.print!(PRINTER_DEVICE_EPSON) - end - # Renders ZPL to a PNG via Labelary's public API for an inline preview. # Fixed at the Datamax label size (4x6in @ 8dpmm ~= 203dpi) -- good enough # for a thumbnail, not meant to be exact for other sizes. @@ -253,16 +213,6 @@ get '/' do erb :index end -post '/issues/print' do - begin - print_issues('home-gitops') - flash 'Open issues sent to printer', 'success' - rescue => e - flash "Failed to print issues (#{e.message})", 'danger' - end - redirect '/' -end - get '/upload' do erb :upload end diff --git a/views/index.erb b/views/index.erb index 3733653..82ed7a6 100644 --- a/views/index.erb +++ b/views/index.erb @@ -9,13 +9,3 @@ - -
Print a receipt-style summary of currently open issues.
- -