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 methodshrike
parent
71cd41aebf
commit
23ed9303b8
|
@ -113,5 +113,27 @@ module Mastodon
|
||||||
say("Imports:\t#{number_to_human_size(Import.sum(:data_file_size))}")
|
say("Imports:\t#{number_to_human_size(Import.sum(:data_file_size))}")
|
||||||
say("Settings:\t#{number_to_human_size(SiteUpload.sum(:file_file_size))}")
|
say("Settings:\t#{number_to_human_size(SiteUpload.sum(:file_file_size))}")
|
||||||
end
|
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
|
||||||
end
|
end
|
||||||
|
|
Loading…
Reference in New Issue