Create the TVRenamer class which as of now just parses the name.
[armadillo.git] / web_frontend / tv_renamer.js
1 //
2 // Armadillo File Manager
3 // Copyright (c) 2010, Robert Sesek <http://www.bluestatic.org>
4 //
5 // This program is free software: you can redistribute it and/or modify it under
6 // the terms of the GNU General Public License as published by the Free Software
7 // Foundation, either version 3 of the License, or any later version.
8 //
9
10 goog.provide('armadillo.TVRenamer');
11
12 goog.require('goog.Disposable');
13 goog.require('goog.net.XhrIo');
14
15 /**
16 * Creates a helper to rename a file in a pretty format for TV episodes.
17 * @extends {goog.Disposable}
18 * @constructor
19 */
20 armadillo.TVRenamer = function(file) {
21 goog.base(this);
22
23 /**
24 * The file object
25 * @type {armadillo.File}
26 */
27 this.file_ = file;
28 }
29 goog.inherits(armadillo.TVRenamer, goog.Disposable);
30
31 /**
32 * @inheritDoc
33 */
34 armadillo.TVRenamer.prototype.disposeInternal = function() {
35 goog.base(this);
36 this.file_ = null;
37 };
38
39 /**
40 * Performs the information lookup and renames the file if the lookup is
41 * successful.
42 */
43 armadillo.TVRenamer.prototype.run = function() {
44 console.log('running for ' + this.file_.getName());
45 console.log(this.parseName_(this.file_.getName()));
46 // goog.net.XhrIo.send();
47 };
48
49 /**
50 * Callback for when the network data is received.
51 * @private
52 */
53 armadillo.TVRenamer.prototype.lookupHandler_ = function() {
54 };
55
56 /**
57 * Parses the TV episode data out of the name.
58 * @param {string!} name The current file name.
59 * @returns {Tuple|null} Returns a tuple (show,season,episode) on success,
60 NULL on failure
61 * @private
62 */
63 armadillo.TVRenamer.prototype.parseName_ = function(name) {
64 var pattern = /^(\d+_)?(.+) S?(\d+)(x|E)(\d+)/;
65 var matches = name.match(pattern);
66 if (!matches || matches.length < 5)
67 return null;
68 return [matches[2], parseInt(matches[3]), parseInt(matches[5])];
69 };
70
71 /**
72 * Builds the query URL.
73 * @param {string!} show Show name
74 * @param {number!} season Season number
75 * @param {number!} episode Episode number
76 * @returns {string}
77 * @private
78 */
79 armadillo.TVRenamer.prototype.buildURL_ = function(show, season, episode) {
80 return "http://services.tvrage.com/tools/quickinfo.php?show=" + show +
81 "&ep=" + season + "x" + episode;
82 };