├── .gitignore
├── README.md
├── htdocs
├── .htaccess
├── api.js
├── config.php.sample
├── favicon.ico
├── footer.php
├── header.php
├── include.php
├── index.php
├── indicator.gif
├── showlists.php
├── simple-proxy.php
├── spotify-desktop.png
├── spotify-mobile.png
├── stalkify-gs.png
├── stalkify-gs2.png
├── stalkify-icon-fw.png
├── stalkify-icon.png
├── stalkify-me.php
├── stalkify.png
├── stillwaiting.php
├── style.css
├── void.gif
└── welcome.php
├── service
├── add-new-feed-type.txt
├── config.py.sample
├── config.rb.sample
├── import.py
├── log
│ └── run
├── match.py
├── pylast.py
├── reset.sql
├── run
├── service
├── service-import
├── service-match
├── service-sync
├── stalkify.sql
├── sync.rb
└── tail
└── todo.md
/.gitignore:
--------------------------------------------------------------------------------
1 | *~
2 | service/spotify_appkey.key
3 | dependencies/
4 | service/clear.rb
5 | *.pyc
6 | service/config.py
7 | service/config.rb
8 | service/bk/
9 | service/tmp/
10 | service/log/supervise
11 | service/supervise
12 | htdocs/config.php
13 | service/config.rb
14 | service/runit/
15 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | See [Stalkify.com](http://www.stalkify.com) for a sense of what this does.
--------------------------------------------------------------------------------
/htdocs/.htaccess:
--------------------------------------------------------------------------------
1 |
2 | RewriteEngine On
3 | RewriteBase /
4 | RewriteCond %{REQUEST_FILENAME} !-f
5 | RewriteCond %{REQUEST_FILENAME} !-d
6 | RewriteRule . /index.php [L]
7 |
8 |
--------------------------------------------------------------------------------
/htdocs/api.js:
--------------------------------------------------------------------------------
1 | var stalkify = {
2 | proxyJSON: function(url, callback){$.getJSON('/simple-proxy?url='+encodeURIComponent(url), callback);},
3 | spotify: {
4 | search:function(type, objname, search, callback){stalkify.proxyJSON('http://ws.spotify.com/search/1/'+type+'.json?q='+encodeURIComponent(search), function(data) {callback(data.contents[objname]);});},
5 | searchArtist:function(artist, callback){stalkify.spotify.search('artist', 'artists', artist, callback);},
6 | searchTrack:function(track, callback){stalkify.spotify.search('track', 'tracks', track, callback);},
7 | searchAlbum:function(album, callback){stalkify.spotify.search('album', 'albums', album, callback);}
8 | },
9 | lastfm: {
10 | get:function(request, callback){request['api_key']='0f9d58ba56bfa4bd4b24ba62b9568615'; request['format']='json'; stalkify.proxyJSON('http://ws.audioscrobbler.com/2.0/?'+$.param(request), function(data) {callback(data.contents);});},
11 | getNeighbours:function(username, callback){stalkify.lastfm.get({method:'user.getneighbours', user:username}, function(o){callback(o.neighbours.user);});},
12 | getTopArtists:function(username, callback){stalkify.lastfm.get({method:'user.gettopartists', user:username}, function(o){callback(o.topartists.artist);});},
13 | getWeeklyArtistChart:function(username, callback){stalkify.lastfm.get({method:'user.getweeklyartistchart', user:username}, function(o){callback(o.weeklyartistchart.artist);});},
14 | squareImage:function(url){return(url.replace(/\/([0-9]{2,3})\//img, "/$1s/"));}
15 | }
16 | }
--------------------------------------------------------------------------------
/htdocs/config.php.sample:
--------------------------------------------------------------------------------
1 |
2 | global $dsn;
3 | $dsn = 'pgsql://DBUSER:DBPWD@localhost/DBNAME';
4 | ?>
5 |
--------------------------------------------------------------------------------
/htdocs/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/steffentchr/legacy-stalkify/6d7d49c349ae313440046fa9b9453a9a23a61fdd/htdocs/favicon.ico
--------------------------------------------------------------------------------
/htdocs/footer.php:
--------------------------------------------------------------------------------
1 |
6 |
7 |
11 |
16 |