Final User interface tweaks to basic commit code (shows dialogs while it does stuff)
[gitlive] / Tickets.js
1 /**
2  *
3  * let's see if we can pull a list of tickets from the tracker..
4  *
5  */
6
7 GI      = imports.gi.GIRepository
8 GLib        = imports.gi.GLib;
9
10
11 Soup = imports.gi.Soup ;
12
13
14 var File = imports.File.File;
15
16 Tickets = {
17     
18     parseNetrc : function()
19     {
20         this.machines = {};
21         // very basic parsing - only support single line version..
22         var lines = File.read(GLib.get_home_dir() + '/.netrc').split(/\n/);
23         var t = this;
24         lines.forEach(function(l)  {
25             if (!l.match(/^machine/)) {
26                 return;
27             }
28             var ar = l.split(/\s+/);
29             // assume machine XXX login XXX password XXXX
30             t.machines[ar[1]] = { login : ar[3], password: ar[5]}
31         });
32         
33         
34     },
35     
36     fetchBugs : function(url)
37     {
38         Tickets.parseNetrc();
39         var ar = url.split('/');
40         print(JSON.stringify(ar, null, 4));
41         var auth = new Soup.Auth()
42         var session = new Soup.SessionSync();
43         session.signal.authenticate.connect(function(sess, msg, auth, rt) {
44             //print("authenticate?");
45             auth.authenticate(
46                     Tickets.machines[ar[2]].login,
47                     Tickets.machines[ar[2]].password
48             );
49         });
50         var request = new Soup.Message({
51                 method:"GET",
52                 uri:new Soup.URI.c_new(url)
53             });
54         var status = session.send_message(request); 
55         
56         var data = request.response_body.data;
57         
58         print(data);
59         return JSON.parse(data).data;
60         
61     }
62     
63     
64     
65 }
66
67
68 //print ( JSON.stringify(Tickets.machines) );
69
70
71
72
73 //Tickets.fetchBugs("http://www.roojs.com/mtrack/index.php/Gitlive/web.hex");
74