#!/bin/bash
###############################
# Dependencies: #
# curl xmlstarlet #
# #
# Written by: #
# Micke Nordin 2009 #
# #
# License: #
# http://sam.zoy.org/wtfpl/ #
# #
# Note: #
# You can create a file #
# called user.inc and place #
# it in the same dirctory #
# as twitter.sh. #
# This file should contain #
# your username and password #
# in this format: #
# #
# username=your_username_here #
# password=your_password_here #
# #
# and nothing else #
###############################
function auth()
{
filename="`dirname $0`/user.inc"
if [ -f "$filename" ]; then
source "$filename"
else
echo "Enter username: "
read username
echo "Enter password (nothing is shown on screen): "
stty_orig=`stty -g`
stty -echo
read password
stty $stty_orig
fi
}
function tweet()
{
echo "What is your tweet?"
read tweet
curl -u $username:$password -d status="$tweet" http://twitter.com/statuses/update.xml &> /dev/null
}
function update()
{
curl -g -u $username:$password http://twitter.com/statuses/friends_timeline.rss -s | xmlstarlet sel --template --match "/rss/channel/item/description" --value-of "." --nl
}
function public()
{
curl -g http://twitter.com/statuses/public_timeline.rss -s | xmlstarlet sel --template --match "/rss/channel/item/description" --value-of "." --nl
}
function follow()
{
echo "Who do you want to follow?"
read follower
curl -u $username:$password -d "" "http://twitter.com/friendships/create/$follower.xml?follow=true" &> /dev/null
}
function unfollow()
{
echo "Who do you want to unfollow?"
read unfollower
curl -u $username:$password -d "" "http://twitter.com/friendships/destroy/$unfollower.xml" &> /dev/null
}
function loop()
{
choice=""
while [ "$choice" != "q" ]; do
echo "choose f/h(help)/p/q/s/t/u"
read choice
if [ "$choice" = "f" ]; then
follow
fi
if [ "$choice" = "h" ]; then
echo "f = follow
h = this cruft
p = see public timeline
q = quit
s = send tweet
t = see updates on your timeline
u = unfollow"
fi
if [ "$choice" = "t" ]; then
update
fi
if [ "$choice" = "p" ]; then
public
fi
if [ "$choice" = "s" ]; then
tweet
fi
if [ "$choice" = "u" ]; then
unfollow
fi
done
}
auth
loop
exit 0
rasmus@rasmus-desktop:~$ sudo apt-get install curl xmlstarlet
We trust you have received the usual lecture from the local System
Administrator. It usually boils down to these three things:
#1) Respect the privacy of others.
#2) Think before you type.
#3) With great power comes great responsibility.
[sudo] password for rasmus:
Jag vet inte hur texten kom dit, men jag har länge velat ha den.[/ot]
Nu har jag lagt till lite mer funktionalitet i skriptet, så att man även kan följa/avfölja användare vi skriptet. Koden uppdaterad ovan och om man laddar hem det via bloggen.
Utanför ämnet: vad blev det för användarnamn? Så kan jag testa den nya follow-funktionen på dig menar jag
Själv heter jag Micke_Nordin på twitter
/Micke
micke_nordin skrev:Utanför ämnet: vad blev det för användarnamn? Så kan jag testa den nya follow-funktionen på dig menar jag
Själv heter jag Micke_Nordin på twitter
/Micke
Utanför ämnet: PieOrPaj
Är twitter som en blogg? jag ska alltså skriva vad jag vill?
Som sagt grymt skript. Nu kanske det blir lite fart på mitt twittrande. Om inte annat så är det bara skönt att bli av med det klegiga och fula interfacet!!!
Dimi skrev:
Hej Micke roliga grejer det här. För min del blir det tyvärr ingen skillnad på om jag väljer f eller l i twitter_friends.sh skriptet.
Undrar om jag gör någe knas.
Mvh
Mycket konstigt, när du väljer l (litet L), så pipas nämligen outputen via tac till stdout, vilket vänder på ordningen. Testa det här i terminalen: echo "test 1
test 2
test 3" | tac
Dimi skrev:
Hej Micke roliga grejer det här. För min del blir det tyvärr ingen skillnad på om jag väljer f eller l i twitter_friends.sh skriptet.
Undrar om jag gör någe knas.
Mvh
Mycket konstigt, när du väljer l (litet L), så pipas nämligen outputen via tac till stdout, vilket vänder på ordningen. Testa det här i terminalen: echo "test 1
test 2
test 3" | tac
Du skall få denna output: test 3
test 2
test 1
/micke
Japp det stämmer när jag skriver ovan nämnda kod så får jag den output som du visar. Konstigt att det inte fungerar i skriptet då. Hur som helst så är det inte något som stör mig. Tänkte bara det var värt att notera. Tycker ändå att skriptet gör twitter roligare att använda.
Ja det är märkligt, för det funkar för mig. Du kan ju testa att leta efter | tac i skriptet och kolla så att koden ser rätt ut, det kan ju vara så att du fått tag på nån äldre version av skriptet eller nått.
micke_nordin skrev:Ja det är märkligt, för det funkar för mig. Du kan ju testa att leta efter | tac i skriptet och kolla så att koden ser rätt ut, det kan ju vara så att du fått tag på nån äldre version av skriptet eller nått.
/Micke
Alltså jag är verkligen inte rätt person att granska kod. Jag kan inte ens stava till vitt bälte när det gäller programering. Men jag finner ändå ett stycke med innehållet