JasonWoof Got questions, comments, patches, etc.? Contact Jason Woofenden
auth working. rename auth.coffee -> api.coffee
[libre-fm-client-daemon.git] / auth.coffee
diff --git a/auth.coffee b/auth.coffee
deleted file mode 100644 (file)
index 1b776ab..0000000
+++ /dev/null
@@ -1,81 +0,0 @@
-fs = require 'fs'
-http = require 'http'
-crypto = require 'crypto'
-xml = require 'node-xml'
-
-auth = {}
-
-md5 = (str) ->
-       sum = crypto.createHash 'md5'
-       sum.update str
-       return sum.digest 'hex'
-
-new_auth_token = (user, pass) ->
-       token = md5(user + md5(pass))
-       auth.user = user
-       auth.token = token
-       return token
-
-auth_file = "#{process.env.HOME}/.libre.fm-cmus.auth"
-save_auth = (user, pass, callback) ->
-       token = new_auth_token(user, pass)
-       text = JSON.stringify user: user, token: new_auth_token(user, pass)
-       fs.writeFile auth_file, text, 'utf8', callback
-       return token
-
-# load login credentials from settings file
-load_auth = (callback) ->
-       if auth.user and auth.token
-               callback auth
-               return
-
-       fs.readFile auth_file, 'utf8', (err, data) ->
-               if err
-                       callback err
-               else
-                       callback null, JSON.parse data
-
-# login and get a session key
-login = (callback) ->
-       load_auth (err, auth) ->
-               return callback(err) if err?
-
-               http.get { host: 'alpha.libre.fm', port: 80, path: "/2.0/?method=auth.getmobilesession&username=#{auth.user}&authToken=#{auth.token}"}, (res) ->
-                       if res.statusCode != 200
-                               console.log "login response code: #{res.statusCode}"
-                               callback "login response code: #{res.statusCode}"
-                               return
-
-                       res.setEncoding 'utf8'
-                       body = ''
-                       res.on 'data', (chunk) ->
-                               body += chunk
-                       res.on 'end', ->
-                               cur_tag = ''
-                               done = false
-                               parser = new xml.SaxParser (cb) ->
-                                       cb.onStartElementNS (name, attrs, prefix, uri, namespaces) ->
-                                               cur_tag = name
-                                       cb.onCharacters (str) ->
-                                               if cur_tag is 'key'
-                                                       done = true
-                                                       auth.sk = str
-                                                       console.log("got key \"#{str}\"")
-                                                       callback null, str
-                                               else if cur_tag is 'error'
-                                                       done = true
-                                                       callback "login failed: #{str}"
-                                               # ignore other stuff in there
-                               unless parser.parse body, true
-                                       done = true
-                                       callback "login server response wouldn't parse as XML."
-                                       console.log "login server sent us bad XML: #{body}"
-
-                               unless done
-                                       callback "Couldn't understand response from login server"
-
-
-
-exports.login = login # fixme remove this from the API and call it automatically
-exports.new_auth_token = new_auth_token
-exports.save_auth = save_auth