Skip to content

Instantly share code, notes, and snippets.

@PaulCapestany
Last active December 11, 2015 03:09
Show Gist options
  • Select an option

  • Save PaulCapestany/4536074 to your computer and use it in GitHub Desktop.

Select an option

Save PaulCapestany/4536074 to your computer and use it in GitHub Desktop.
TextExpander shell script to get twitter stats of $USER using "t" Twitter CLI client (..also, there are python dependencies for the "TOPICS" column)
#!/bin/zsh
USER=`echo '%filltext:name=username%'` && \
TEMPDIR="/tmp/$USER.$RANDOM.$RANDOM.$RANDOM.$$" && \
(umask 077 && mkdir $TEMPDIR) || {
echo "Could not create temporary directory! Exiting." 1>&2
exit 1
} && \
# start timeline search for $USER
RESULTS="$TEMPDIR/RESULTS" && \
t search timeline -l $USER "" > $RESULTS && \
CLEANTWEETS="$TEMPDIR/CLEANTWEETS" && \
perl -pe 's/[ ]*?[0-9]{3,}.*?'"$USER"'[ ][ ]//ig' $RESULTS > $CLEANTWEETS && \
PY_MAP_REDUCE="/Users/PaulCapestany/Documents/_Coding/_Tracked-Repos/machine_learning/map_reduce.py" && \
MAP_REDUCE_SORTED="$TEMPDIR/MAP_REDUCE_SORTED" && \
cat $CLEANTWEETS | sed 's|@[[:alnum:]_]*||g' | sed 's|#[[:alnum:]_]*||g' | tr '[A-Z]' '[a-z]' | sed 's|[[:punct:]]||g' | python $PY_MAP_REDUCE map | sort | python $PY_MAP_REDUCE reduce | sort -r -n -k 2 | awk '{print $2 "\t" $1}' | head -20 > $MAP_REDUCE_SORTED && \
REPLIES="$TEMPDIR/REPLIES" && \
egrep -oh '@\w+' $CLEANTWEETS | sort -f | uniq -ci | sort -f -r | head -20 > $REPLIES && \
RETWEETS="$TEMPDIR/RETWEETS" && \
egrep -oh 'RT @\w+' $CLEANTWEETS | sort -f | uniq -ci | sort -f -r | head -20 | sed 's/RT //g' > $RETWEETS && \
HASHTAGS="$TEMPDIR/HASHTAGS" && \
egrep -oh '#\w+' $CLEANTWEETS | sort -f | uniq -ci | sort -f -r | head -20 > $HASHTAGS && \
FOR_DISPLAY="$TEMPDIR/FOR_DISPLAY" && \
paste $REPLIES $RETWEETS $HASHTAGS $MAP_REDUCE_SORTED > $FOR_DISPLAY && \
echo "\n****** $USER ******\n" && \
(printf "\n# REPLIES # RETWEETS # HASHTAGS # TOPICS\n- ------- - -------- - -------- - ------\n" ; cat $FOR_DISPLAY) | column -t
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment