cephurs

nachash's Big Fucking Twitter Gun

Nov 8th, 2014
777
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. #!/bin/bash
  2.  
  3. now=$(date +"%Y_%m_%d_-_%H_%M_%S" ) # Just setting the date and time
  4.  
  5. echo "Now pointing the BFTG-9000 at $1"
  6. gzip -d ~/dox/twitter/timelines/$1.gz 2> /dev/null
  7. usewithtor /usr/local/bin/twitter-archiver -o -f -s ~/dox/twitter/timelines $1
  8. gzip ~/dox/twitter/timelines/$1 2> /dev/null
  9.  
  10. if [ -f ~/dox/twitter/timelines/$1.gz ] || [ -f ~/dox/twitter/timelines/$1 ]; then
  11.  
  12.     echo "Direct hit! Area damage coming in 3... 2... 1..."
  13.  
  14.     # This section pulls the mentions out of the chosen timeline, places them in a
  15.     # file, formats them so that all the names are lowercase, sorts for uniqueness,
  16.     # and finally removes the @ symbols. It also generates a simple report which
  17.     # shows how many times the target mentioned each account, sorted from most to
  18.     # least number of mentions.
  19.  
  20.     gunzip ~/dox/twitter/timelines/$1.gz 2> /dev/null
  21.     grep -Eo ' @[A-Za-z0-9_]+' ~/dox/twitter/timelines/$1 > ~/dox/twitter/mentions/$1-raw
  22.     tr '[:upper:]' '[:lower:]' < ~/dox/twitter/mentions/$1-raw >> ~/dox/twitter/mentions/$1-alpha
  23.     sort ~/dox/twitter/mentions/$1-alpha | uniq -c > ~/dox/twitter/mentions/$1-mc-alpha
  24.     awk '{print $2,$1}' ~/dox/twitter/mentions/$1-mc-alpha > ~/dox/twitter/mentions/$1-mc-beta
  25.     sort -grk 2 ~/dox/twitter/mentions/$1-mc-beta > ~/dox/twitter/mentions/$1_mentions_count.txt
  26.     sort -u ~/dox/twitter/mentions/$1-alpha > ~/dox/twitter/mentions/$1.full.txt
  27.     totalMentions=$(wc -l ~/dox/twitter/mentions/$1.full.txt | awk '{print $1}')
  28.     sort -u  ~/dox/twitter/mentions/$1.full.txt >  ~/dox/twitter/mentions/$1-beta
  29.     sed -i 's/ @//g' ~/dox/twitter/mentions/$1-beta
  30.     echo "BOOM! Now for the dust to settle..."
  31.  
  32.     # This section pulverizes the data left over from the previous section to
  33.     # create a shell script which will crawl the accounts you don't already
  34.     # have saved.
  35.  
  36.     ls ~/dox/twitter/timelines/ | sort -u > ~/dox/twitter/ls.txt
  37.     sed -i 's/\.gz//'g ~/dox/twitter/ls.txt
  38.     comm -13 ~/dox/twitter/ls.txt ~/dox/twitter/mentions/$1-beta > ~/dox/twitter/mentions/$1-rc 2> /dev/null
  39.     uniqueMentions=$(wc -l ~/dox/twitter/mentions/$1-rc | awk '{print $1}')
  40.     sed -i -e 's/^/~\/twit.sh /' ~/dox/twitter/mentions/$1-rc
  41.     echo '#!/bin/bash' | cat - ~/dox/twitter/mentions/$1-rc > ~/dox/twitter/mentions/$1-rc.temp
  42.     mv ~/dox/twitter/mentions/$1-rc.temp ~/dox/twitter/mentions_scripts/$1.sh
  43.     #sed '0~11 s/$/\nsleep 900/g' < ~/dox/twitter/mentions/$1-rc > ~/dox/twitter/mentions_scripts/$1.sh # Seems to not be required anymore
  44.     chmod +x ~/dox/twitter/mentions_scripts/$1.sh
  45.     echo "OUCH! Nothing left but their shoes. You have to crawl $uniqueMentions out of $totalMentions accounts. $1 status: demolished, will not recover, etc."
  46.     #rm -rf ~/dox/twitter/mentions/$1-*
  47.     gzip ~/dox/twitter/timelines/$1 2> /dev/null
  48.     echo "Timeline: ~/dox/twitter/timelines/$1"
  49.     echo "Mentions script: ~/dox/twitter/mentions_scripts/$1.sh"
  50.     echo "Time analysis: ~/dox/twitter/times/$1_$now.txt"
  51.  
  52. else
  53.  
  54.     echo "Oh, fail."
  55.  
  56. fi
  57.  
  58. if [ -f ~/dox/twitter/timelines/$1 ]; then
  59.  
  60.     # The section will pull the timestamps from the last 200 tweets, then sort by
  61.     # hour, and tell us how many times the target tweeted during each hour.
  62.  
  63.     echo "###########################################################################" > ~/dox/twitter/times/$1_$now.txt
  64.     echo "# Hours/tweets for $1's last 200 tweets" >> ~/dox/twitter/times/$1_$now.txt
  65.     echo "###########################################################################" >> ~/dox/twitter/times/$1_$now.txt
  66.  
  67.     tail -n 200 ~/dox/twitter/timelines/$1 > ~/dox/twitter/times/$1-tail
  68.     awk '{print $3}' ~/dox/twitter/times/$1-tail > ~/dox/twitter/times/$1-tail-raw
  69.     sed -i 's/:/ /g' ~/dox/twitter/times/$1-tail-raw
  70.     awk '{print $1}' ~/dox/twitter/times/$1-tail-raw > ~/dox/twitter/times/$1-tail-beta
  71.     sort ~/dox/twitter/times/$1-tail-beta | uniq -c | awk '{print $2,$1}' >> ~/dox/twitter/times/$1_$now.txt
  72.  
  73.     # This section does the same as the previous section, except it acts upon
  74.     # the entire collected timeline.
  75.  
  76.     echo "###########################################################################" >> ~/dox/twitter/times/$1_$now.txt
  77.     echo "# Hours/tweets for all of $1's stored tweets" >> ~/dox/twitter/times/$1_$now.txt
  78.     echo "###########################################################################" >> ~/dox/twitter/times/$1_$now.txt
  79.  
  80.     awk '{print $3}' ~/dox/twitter/timelines/$1 > ~/dox/twitter/times/$1-raw
  81.     sed -i 's/:/ /g' ~/dox/twitter/times/$1-raw
  82.     awk '{print $1}' ~/dox/twitter/times/$1-raw > ~/dox/twitter/times/$1-beta
  83.     sort ~/dox/twitter/times/$1-beta | uniq -c | awk '{print $2,$1}' >> ~/dox/twitter/times/$1_$now.txt
  84.     rm -rf ~/dox/twitter/times/$1-*
  85. fi
Add Comment
Please, Sign In to add comment