Improve story handling on CLI
This commit is contained in:
parent
8dcb61154e
commit
2256adae26
1 changed files with 32 additions and 3 deletions
|
|
@ -57,19 +57,48 @@ class FicTracker::Cli::Story < Thor
|
|||
end
|
||||
end
|
||||
|
||||
desc 'update STORY...', 'Force-update the listed stories'
|
||||
def update(*stories)
|
||||
setup!
|
||||
|
||||
stories.each do |story|
|
||||
puts "Updating #{story} ..."
|
||||
bend = FicTracker::Backends.find_backend story
|
||||
if bend.nil?
|
||||
puts " Can't update, no available backends."
|
||||
next
|
||||
end
|
||||
|
||||
bend = FicTracker::Backends.get(bend)
|
||||
slug = story
|
||||
slug = bend.parse_slug(story) if bend.respond_to? :parse_slug
|
||||
|
||||
story = FicTracker::Models::Story.find(backend_name: bend.name, slug:)
|
||||
unless story
|
||||
puts " Not tracking, skipping."
|
||||
next
|
||||
end
|
||||
|
||||
before = story.etag
|
||||
story.refresh_metadata!
|
||||
story.refresh_content!
|
||||
render_story! story if story.etag != before
|
||||
end
|
||||
end
|
||||
|
||||
desc 'del STORY...', 'Remove stories from tracker'
|
||||
def del(*stories)
|
||||
setup!
|
||||
stories.each do |story|
|
||||
if story.include? '/'
|
||||
backend, slug = story.split '/'
|
||||
backend = nil if backend == '*'
|
||||
backend_name, slug = story.split '/'
|
||||
backend_name = nil if backend_name == '*'
|
||||
else
|
||||
slug = story
|
||||
end
|
||||
|
||||
search = {
|
||||
backend:,
|
||||
backend_name:,
|
||||
slug:
|
||||
}.compact
|
||||
found = FicTracker::Models::Story.where(**search)
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue