emkay443

Imgur Upload + Twitter Post Script

Aug 11th, 2013
169
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Bash 2.11 KB | None | 0 0
  1. #!/bin/bash
  2. # Lädt ein Bild auf imgur hoch und postet den Link auf Twitter
  3. #
  4. # Author: Michael Koch (Emkay443) (m.koch<AT>emkay443<DOT>de)
  5. # Version: 2013-08-31
  6. # License: GNU General Public License v3 (http://www.gnu.de/documents/gpl-3.0.en.html)
  7.  
  8. # Abhängigkeiten prüfen
  9. if [[ ! "$(which curl)" ]]; then toInst=$toInst" curl"; fi
  10. if [[ ! "$(which urlencode)" ]]; then toInst=$toInst" gridsite-clients"; fi
  11.  
  12. # Wenn alles okay: Hochladen und Twitter öffnen
  13. if [[ -z $toInst ]]; then
  14.     for file in "$@"; do
  15.         notify-send --hint=int:transient:1 "Upload" "Das Bild wird hochgeladen..."
  16.         # Versuche das Bild hochzuladen (via curl) und lege die Rückgabe auf die Var. $TEXT
  17.         TEXT=$(curl -F "image"=@"$file" -F "key"="5d317f0bee23b282473522e1aa68f621" http://imgur.com/api/upload.xml);
  18.         # Wenn die Rückgabe overload, 404 oder error beinhaltet, gebe Fehlermeldung aus
  19.         if [[ "$TEXT" == *overload* ]]; then
  20.             notify-send --hint=int:transient:1 "Imgur Server überlastet" "Bild konnte nicht hochgeladen werden.\nDie Server sind überlastet.";
  21.         elif [[ "$TEXT" == *404* ]]; then
  22.             notify-send --hint=int:transient:1 "Imgur Server nicht erreichbar" "Bild konnte nicht hochgeladen werden.\nDie Server sind nicht erreichbar (Fehler 404)";
  23.         elif [[ "$TEXT" == *error* ]]; then
  24.             notify-send --hint=int:transient:1 "Imgur Server nicht erreichbar" "Bild konnte nicht hochgeladen werden.\nDie Server sind nicht erreichbar (unbekannter Fehler)";
  25.         else
  26.             # Ansonsten beschneide den Text um unnötigen Kram
  27.             # und öffne Twitter mit einem neuen Post
  28.             TEXT=$(echo -e "$TEXT" | grep -Eo '<[a-z_]+>http[^<]+'|sed 's/^<.\|_./\U&/g;s/_/ /;s/<\(.*\)>/\1:\ /' | awk 'NR == 1' | sed -e 's/Original Image: //' | tr -d '\n');
  29.             TEXT=$(urlencode -m $TEXT)
  30.             x-www-browser http://twitter.com/intent/tweet/?url=$TEXT &
  31.         fi
  32.     done
  33. else
  34.     # Abhängigkeitsprobleme: Nutzer darüber aufmerksam machen.
  35.     notify-send "FEHLER!" "Abhängigkeitsprobleme!"
  36.     echo "Folgende Pakete fehlen auf Ihrem System:$toInst"
  37.     zenity --warning --title "Abhängigkeitsprobleme" --text "Folgende Pakete fehlen auf Ihrem System:\n$toInst" 0 0
  38.     exit 1
  39. fi
  40. exit 0
Advertisement
Add Comment
Please, Sign In to add comment