Add `tootctl media lookup` command (#12283)
* Add a lookup tool to the media cli * Improved lookup logic * Clarified wording in the output * Code style changes * Code style changes * Code style changes * Code style changes * Add error handling code incase an attachment isn't found * Code style changes * Code style changes * Make requested changes * Fix styling issues * Handle other media types * Remove an inadvertently added log * Make requested changes * Make the code safe no matter what the path, S3 or not * Code style changes * Code style changes * Replace select method with Ruby Enumerable grep method
This commit is contained in:
parent
71cd41aebf
commit
23ed9303b8
|
@ -113,5 +113,27 @@ module Mastodon
|
|||
say("Imports:\t#{number_to_human_size(Import.sum(:data_file_size))}")
|
||||
say("Settings:\t#{number_to_human_size(SiteUpload.sum(:file_file_size))}")
|
||||
end
|
||||
|
||||
desc 'lookup', 'Lookup where media is displayed by passing a media URL'
|
||||
def lookup
|
||||
prompt = TTY::Prompt.new
|
||||
|
||||
url = prompt.ask('Please enter a URL to the media to lookup:', required: true)
|
||||
|
||||
attachment_id = url
|
||||
.split('/')[0..-2]
|
||||
.grep(/\A\d+\z/)
|
||||
.join('')
|
||||
|
||||
if url.split('/')[0..-2].include? 'media_attachments'
|
||||
model = MediaAttachment.find(attachment_id).status
|
||||
prompt.say(ActivityPub::TagManager.instance.url_for(model))
|
||||
elsif url.split('/')[0..-2].include? 'accounts'
|
||||
model = Account.find(attachment_id)
|
||||
prompt.say(ActivityPub::TagManager.instance.url_for(model))
|
||||
else
|
||||
prompt.say('Not found')
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
Reference in New Issue