Skip to content

Instantly share code, notes, and snippets.

@nilsding
Created October 30, 2013 22:19
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save nilsding/7241353 to your computer and use it in GitHub Desktop.
Save nilsding/7241353 to your computer and use it in GitHub Desktop.
The source code behind @nilsplaying.
#!/usr/bin/python2
#
# tweet_np.py
#
# Copyright (C) 2013 nilsding
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as
# published by the Free Software Foundation, either version 3 of the
# License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Affero General Public License for more details.
#
# You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
# - ~ - ~ - ~ - ~ - ~ - ~ - ~ - ~ - ~ - ~ - ~ - ~ - ~ - ~ - ~ - ~ - ~ -
#
# How to use:
# In the ncmpcpp config file, set `execute_on_song_change' to the full
# path of the script, e.g. "/home/nilsding/.ncmpcpp/tweet_np.py"
#
# - ~ - ~ - ~ - ~ - ~ - ~ - ~ - ~ - ~ - ~ - ~ - ~ - ~ - ~ - ~ - ~ - ~ -
class config:
now_playing_format = '{%a - }{%t}|{%f} {[%l]}' # Song format as defined by ncmpcpp(1)
tweet_format = '#np %nowplaying%' # Tweet format, '%nowplaying%' is replaced by the song currently played
class oauth:
consumer_key = 'get'
consumer_secret = 'your'
access_token = '1966170554-own'
access_token_secret = 'keys'
# - ~ - ~ - ~ - ~ - ~ - ~ - ~ - ~ - ~ - ~ - ~ - ~ - ~ - ~ - ~ - ~ - ~ -
import sys
import tweepy
import traceback
import subprocess
np = subprocess.check_output(['ncmpcpp', '--now-playing', config.now_playing_format])
tweet_text = config.tweet_format.replace('%nowplaying%', str(np))
auth = tweepy.OAuthHandler(config.oauth.consumer_key, config.oauth.consumer_secret)
auth.set_access_token(config.oauth.access_token, config.oauth.access_token_secret)
api = tweepy.API(auth)
try:
api.update_status(tweet_text)
except:
print >>sys.stderr, 'failed to tweet'
traceback.print_exc()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment