1
0
mirror of https://github.com/danog/id3bot.git synced 2024-11-26 11:54:43 +01:00
This commit is contained in:
Daniil Gentili 2016-07-03 17:41:14 +02:00
parent 0dec976985
commit 8a8cd3c9db
3 changed files with 74 additions and 18 deletions

View File

@ -7,8 +7,7 @@
# Depends on JSON.sh (http://github.com/dominictarr/JSON.sh) (MIT/Apache),
# and on tmux (http://github.com/tmux/tmux) (BSD).
# This file is public domain in the USA and all free countries.
# Elsewhere, consider it to be WTFPLv2. (wtfpl.net/txt/copying)
# Licensed under gplv3
if [ ! -f "JSON.sh/JSON.sh" ]; then
echo "You did not clone recursively! Downloading JSON.sh..."

View File

@ -1,8 +1,7 @@
#!/bin/bash
# Edit your commands in this file.
# This file is public domain in the USA and all free countries.
# Elsewhere, consider it to be WTFPLv2. (wtfpl.net/txt/copying)
# Licensed under gplv3
if [ "$1" = "source" ];then
# Place the token in the token file
@ -14,8 +13,6 @@ if [ "$1" = "source" ];then
FILE_REGEX='.*'
else
if ! tmux ls | grep -v send | grep -q $copname; then
[ ! -z ${URLS[*]} ] && {
}
[ ! -z ${LOCATION[*]} ] && send_location "${USER[ID]}" "${LOCATION[LATITUDE]}" "${LOCATION[LONGITUDE]}"
# Inline
@ -51,8 +48,18 @@ else
'/start')
send_message "${USER[ID]}" "This bot can be used to edit the id3 tags of audio files.
Available commands:
• /start: Start bot and start editing process.
• /cancel: Cancel any currently running interactive chats.
• /start: Start bot and start editing process.
• /cancel: Cancel any currently running interactive chats.
• /artist "ARTIST" Set the artist information
• /album "ALBUM" Set the album title information
• /song "SONG" Set the song title information
• /comment "DESCRIPTION":"COMMENT":"LANGUAGE" Set the comment information (both description and language optional)
• /genre num Set the genre number
• /year num Set the year
• /track num/num Set the track number/(optional) total tracks
• /art URL or image Set the album art.
• /done End the process
Written by Daniil Gentili (@danogentili, https://daniil.it).
Check out my other bots: @video_dl_bot, @mklwp_bot, @caption_ai_bot, @cowsaysbot, @cowthinksbot, @figletsbot, @lolcatzbot, @filtersbot, @id3bot, @pwrtelegrambot
https://github.com/danog/id3bot
@ -64,7 +71,7 @@ https://github.com/danog/id3bot
if tmux ls | grep -q $copname; then killproc && send_message "${USER[ID]}" "Command canceled.";else send_message "${USER[ID]}" "No command is currently running.";fi
;;
*)
if tmux ls | grep -v send | grep -q $copname;then inproc; else send_message "${USER[ID]}" "$MESSAGE" "safe";fi
if tmux ls | grep -v send | grep -q $copname;then inproc; fi
;;
esac
fi

View File

@ -2,7 +2,7 @@
# Licensed under GPLV3
echo "Send me the audio files that you whish to modify (up to 1.5 gigabytes thanks to @pwrtelegram)"
echo "Send me the audio files that you wish to modify (up to 1.5 gigabytes thanks to @pwrtelegram)"
read url
url=$(echo "$url" | sed 's/^\s*//g;s/\s*$//g')
name="$RANDOM"$(basename "$url")
@ -10,16 +10,66 @@ wget "$url" -qO /tmp/"$name" || { echo "Couldn't download file. Please try again
mimetype "$name" | sed 's/.*\s//' | grep -qE '^audio/' || { echo "You didn't send me an audio file."; rm "$NAME" &>/dev/null; exit 1; }
help=$(id3v2 --help 2>&1)
echo "Now send me the following tags (send null to ignore tag)"
for f in artist album song comment genre year track;do
echo "$help" | sed '/\-\-'$f'/!d;s/.*\-\-'$f'//g'
case "$f" in
"comment") echo "Set the comment information (both description and language optional)";;
"genre") id3v2 -L | tr -s '\n' ", " | tr -d '&';echo;;
esac
echo "Now send me the appropriate command to set the the id3 tags, type /done when you're done."
until [ "$read" == "/done" ];do
read "read"
[ "$read" != "null" ] && id3v2 --$f "$read" "$name"
case "$read" in
"/artist")
echo "Send me the artist information"
read wut
id3v2 --artist "$wut" /tmp/"$name" || { echo "Couldn't set id3 tag."; continue; };
;;
"/album")
echo "Send me the album information"
read wut
id3v2 --album "$wut" /tmp/"$name" || { echo "Couldn't set id3 tag."; continue; };
;;
"/song")
echo "Send me the song's name"
read wut
id3v2 --song "$wut" /tmp/"$name" || { echo "Couldn't set id3 tag."; continue; };
;;
"/comment")
echo "Send me some comments in the format DESCRIPTION:COMMENT:LANGUAGE"
read wut
id3v2 --comment "$wut" /tmp/"$name" || { echo "Couldn't set id3 tag."; continue; };
;;
"/genre")
echo "Send me the genre number"
echo "Available genres: 0: Blues, 1: Classic Rock, 2: Country, 3: Dance, 4: Disco, 5: Funk, 6: Grunge, 7: Hip-Hop, 8: Jazz, 9: Metal, 10: New Age, 11: Oldies, 12: Other, 13: Pop, 14: RB, 15: Rap, 16: Reggae, 17: Rock, 18: Techno, 19: Industrial, 20: Alternative, 21: Ska, 22: Death Metal, 23: Pranks, 24: Soundtrack, 25: Euro-Techno, 26: Ambient, 27: Trip-Hop, 28: Vocal, 29: Jazz Funk, 30: Fusion, 31: Trance, 32: Classical, 33: Instrumental, 34: Acid, 35: House, 36: Game, 37: Sound Clip, 38: Gospel, 39: Noise, 40: AlternRock, 41: Bass, 42: Soul, 43: Punk, 44: Space, 45: Meditative, 46: Instrumental Pop, 47: Instrumental Rock, 48: Ethnic, 49: Gothic, 50: Darkwave, 51: Techno-Industrial, 52: Electronic, 53: Pop-Folk, 54: Eurodance, 55: Dream, 56: Southern Rock, 57: Comedy, 58: Cult, 59: Gangsta, 60: Top 40, 61: Christian Rap, 62: Pop/Funk, 63: Jungle, 64: Native American, 65: Cabaret, 66: New Wave, 67: Psychedelic, 68: Rave, 69: Showtunes, 70: Trailer, 71: Lo-Fi, 72: Tribal, 73: Acid Punk, 74: Acid Jazz, 75: Polka, 76: Retro, 77: Musical, 78: Rock Roll, 79: Hard Rock, 80: Folk, 81: Folk-Rock, 82: National Folk, 83: Swing, 84: Fast Fusion, 85: Bebob, 86: Latin, 87: Revival, 88: Celtic, 89: Bluegrass, 90: Avantgarde, 91: Gothic Rock, 92: Progressive Rock, 93: Psychedelic Rock, 94: Symphonic Rock, 95: Slow Rock, 96: Big Band, 97: Chorus, 98: Easy Listening, 99: Acoustic,100: Humour,101: Speech,102: Chanson,103: Opera,104: Chamber Music,105: Sonata,106: Symphony,107: Booty Bass,108: Primus,109: Porn Groove,110: Satire,111: Slow Jam,112: Club,113: Tango,114: Samba,115: Folklore,116: Ballad,117: Power Ballad,118: Rhythmic Soul,119: Freestyle,120: Duet,121: Punk Rock,122: Drum Solo,123: A capella,124: Euro-House,125: Dance Hall,126: Goa,127: Drum Bass,128: Club-House,129: Hardcore,130: Terror,131: Indie,132: Britpop,133: Negerpunk,134: Polsk Punk,135: Beat,136: Christian Gangsta Rap,137: Heavy Metal,138: Black Metal,139: Crossover,140: Contemporary Christian,141: Christian Rock ,142: Merengue,143: Salsa,144: Thrash Metal,145: Anime,146: JPop,147: Synthpop."
read wut
id3v2 --genre "$wut" /tmp/"$name" || { echo "Couldn't set id3 tag."; continue; };
;;
"/year")
echo "Send me the year"
read wut
id3v2 --year "$wut" /tmp/"$name" || { echo "Couldn't set id3 tag."; continue; };
;;
"/track")
echo "Send me the the track number in the format track number/(optional) total tracks"
read wut
id3v2 --track "$wut" /tmp/"$name" || { echo "Couldn't set id3 tag."; continue; };
;;
"/art")
echo "Send me the album art (URL or image)"
read art
extension="${art##*.}"
wget "$art" -qO /tmp/"$name"art."$extension" || { echo "Couldn't download file. Please try again in a few minutes."; rm /tmp/"$name"art."$extension"; continue; }
echo "Removing old images..."
eyeD3 --remove-images /tmp/"$name" &>/dev/null
echo "Adding new image..."
eyeD3 --add-image=/tmp/"$name"art."$extension":FRONT_COVER /tmp/"$name" &>/dev/null || { echo "Couldn't insert album art. Please check the image format."; rm /tmp/"$name"art."$extension"; continue; }
rm /tmp/"$name"art."$extension"
;;
"/done")
break
;;
esac
echo "Done."
done
echo "Send /start to restart the process and check out my other bots: @video_dl_bot, @mklwp_bot, @caption_ai_bot, @cowsaysbot, @cowthinksbot, @figletsbot, @lolcatzbot, @filtersbot, @id3bot, @pwrtelegrambot"
echo "myfilelocationstartshere /tmp/$name"
exit