annotate chrome/content/saved.js @ 0:c14d52a3b2fe

initial import
author Yoshiki Yazawa <yaz@honeyplanet.jp>
date Mon, 11 Aug 2008 20:34:21 +0900
parents
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
1
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
2 var oProps = Components.classes["@mozilla.org/file/directory_service;1"].getService(Components.interfaces.nsIProperties);
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
3 var sUserChrome = (oProps.get("UChrm", Components.interfaces.nsIFile)).path;
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
4 var sPathSeperator = "\\";
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
5 if(sUserChrome[0].indexOf("/") > -1) sPathSeperator = "/";
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
6
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
7 var sTinyRdfName = "tinyurl.rdf";
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
8 var sTinyRdfPath = sUserChrome + sPathSeperator + sTinyRdfName;
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
9
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
10 // RDF Vars
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
11 var gTinyRdf = null;
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
12 var gTinyDs = null;
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
13 var gTinyRdfUtil = null;
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
14 var gTinyRdfC = null;
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
15 var gTinyRdfRoot = "http://jgillick.nettripper.com/tinyurl";
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
16
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
17 // Create RDF File if it does not exist
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
18 function tinyurl_saved_rdfCreate(){
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
19 try{
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
20
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
21 var oFileLocal = Components.classes["@mozilla.org/file/local;1"].createInstance(Components.interfaces.nsILocalFile);
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
22 oFileLocal.initWithPath(sTinyRdfPath);
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
23
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
24 // Doesn't Exist?
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
25 if(!oFileLocal.exists()){
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
26
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
27 // Read RDF
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
28 var oRequest = new XMLHttpRequest();
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
29 oRequest.open("GET", "chrome://tinyurl/content/"+ sTinyRdfName, false);
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
30 oRequest.send("");
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
31 var sContent = oRequest.responseText;
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
32
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
33 // Write
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
34 oFileLocal.create(0x00, 0666);
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
35 var oFileOut = Components.classes["@mozilla.org/network/file-output-stream;1"].createInstance(Components.interfaces.nsIFileOutputStream);
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
36 oFileOut.init(oFileLocal, 0x20 | 0x02, 00666, null);
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
37 oFileOut.write(sContent, sContent.length);
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
38 oFileOut.flush();
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
39 oFileOut.close();
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
40 }
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
41
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
42 }catch(err){ }
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
43
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
44 }
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
45
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
46 // Enable Buttons
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
47 function tinyurl_saved_disable(dis){
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
48 document.getElementById('go-saved-button').disabled = dis;
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
49 document.getElementById('copy-saved-button').disabled = dis;
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
50 document.getElementById('edit-saved-button').disabled = dis;
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
51 document.getElementById('remove-saved-button').disabled = dis;
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
52
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
53 if(dis){
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
54 document.getElementById('go-saved-button').image = "chrome://tinyurl/content/icons/go_off.png";
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
55 document.getElementById('copy-saved-button').image = "chrome://tinyurl/content/icons/copy_off.png";
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
56 document.getElementById('edit-saved-button').image = "chrome://tinyurl/content/icons/edit_off.png";
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
57 document.getElementById('remove-saved-button').image = "chrome://tinyurl/content/icons/remove_off.png";
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
58 }
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
59 else{
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
60 document.getElementById('go-saved-button').image = "chrome://tinyurl/content/icons/go.png";
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
61 document.getElementById('copy-saved-button').image = "chrome://tinyurl/content/icons/copy.png";
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
62 document.getElementById('edit-saved-button').image = "chrome://tinyurl/content/icons/edit.png";
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
63 document.getElementById('remove-saved-button').image = "chrome://tinyurl/content/icons/remove.png";
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
64 }
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
65 }
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
66
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
67 // Goto Saved Url
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
68 function tinyurl_saved_go(){
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
69 var sUri = oSavedTree.contentView.getItemAtIndex(oSavedTree.currentIndex).getAttribute("uri");
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
70
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
71 // Get Real Url
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
72 try{
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
73 var aProps = tinyurl_saved_getEntry(sUri);
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
74
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
75 if(opener){
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
76 opener.gBrowser.selectedTab = opener.gBrowser.addTab(aProps["realurl"]);
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
77 }
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
78 else{
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
79 window.open(aProps["realurl"]);
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
80 }
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
81
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
82 setTimeout("self.focus()", 100);
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
83
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
84 }catch(err) { alert("Error: 560\n Could not access that URL\n"+ err); }
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
85 }
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
86
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
87 // Copy TinyUrl
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
88 function tinyurl_saved_copy(){
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
89 if(oSavedTree.currentIndex > -1){
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
90 var sUri = oSavedTree.contentView.getItemAtIndex(oSavedTree.currentIndex).getAttribute("uri");
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
91 try{
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
92 var aProps = tinyurl_saved_getEntry(sUri);
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
93 tinyurl_copyText(aProps["tinyurl"]);
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
94 }catch(err){ alert("Error: 580\n Could not copy that URL\n"+ err); }
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
95 }
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
96 }
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
97
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
98 // Open Edit Dialog
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
99 function tinyurl_saved_openEdit(){
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
100 var sUri = oSavedTree.contentView.getItemAtIndex(oSavedTree.currentIndex).getAttribute("uri");
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
101
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
102 if(sUri != null && sUri != "")
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
103 window.openDialog('chrome://tinyurl/content/tinyurl_edit.xul','TinyUrlEditDialog','centerscreen, chrome, modal, resizable', sUri).focus()
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
104 }
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
105
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
106 // Read RDF Entries
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
107 function tinyurl_saved_read(){
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
108 if(oSavedTreeItems == null)
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
109 return;
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
110
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
111 try{
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
112 tinyurl_saved_initRdf();
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
113
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
114 // Remove All Existing
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
115 while(oSavedTreeItems.childNodes.length > 0)
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
116 oSavedTreeItems.removeChild(oSavedTreeItems.firstChild);
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
117
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
118 // Read From RDF
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
119 var aProps = null;
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
120 var oTrgt = null;
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
121 var oTreeItem = null;
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
122 var oTreeRow = null;
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
123 var oTreeCell = null;
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
124 var aElements = gTinyRdfC.GetElements();
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
125 while(aElements.hasMoreElements()){
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
126 try{
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
127 var oRes = aElements.getNext();
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
128 oRes = oRes.QueryInterface(Components.interfaces.nsIRDFResource);
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
129
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
130 oTreeItem = document.createElement("treeitem");
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
131 oTreeItem.setAttribute("uri", oRes.Value);
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
132 oTreeRow = oTreeItem.appendChild(document.createElement("treerow"));
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
133
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
134 aProps = tinyurl_saved_getEntry(oRes.Value);
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
135
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
136 // Title
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
137 oTreeRow.appendChild(document.createElement("treecell")).setAttribute("label", aProps["title"])
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
138 // TinyUrl
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
139 oTreeRow.appendChild(document.createElement("treecell")).setAttribute("label", aProps["tinyurl"])
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
140 // Real Url
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
141 oTreeRow.appendChild(document.createElement("treecell")).setAttribute("label", aProps["realurl"])
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
142
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
143 oSavedTreeItems.appendChild(oTreeItem);
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
144
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
145 }catch(err){ }
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
146 }
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
147
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
148 tinyurl_saved_disable(true);
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
149
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
150 }catch(err) { alert("Error 500\nAn unknown error occurred loading saved data\n"+ err); }
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
151 }
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
152
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
153 // Remvoe RDF Entry
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
154 function tinyurl_saved_remove(){
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
155
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
156 var sUri = oSavedTree.contentView.getItemAtIndex(oSavedTree.currentIndex).getAttribute("uri");
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
157 var iSelect = oSavedTree.currentIndex;
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
158
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
159 if(sUri != null && sUri != "" && confirm("Are you SURE you want to remove this entry?")){
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
160 try{
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
161 tinyurl_saved_initRdf();
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
162
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
163 var oRes = gTinyRdf.GetResource(sUri);
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
164
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
165 // Remove All Archs
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
166 var aArchs = null;
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
167 var hasArchs = true;
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
168 while(hasArchs){
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
169 aArchs = gTinyDs.ArcLabelsOut(oRes);
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
170 hasArchs = aArchs.hasMoreElements();
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
171 while(aArchs.hasMoreElements()){
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
172 oArch = aArchs.getNext().QueryInterface(Components.interfaces.nsIRDFResource);
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
173
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
174 //Remove
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
175 gTinyDs.Unassert(oRes, oArch, gTinyDs.GetTarget(oRes, oArch, true));
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
176 }
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
177 }
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
178
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
179 // Remove Element
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
180 gTinyRdfC.RemoveElement(oRes, true);
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
181
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
182 // Rewrite Tree
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
183 tinyurl_saved_read()
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
184
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
185 // Select Row
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
186 if(iSelect > oSavedTree.view.rowCount - 1){
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
187 oSavedTree.view.selection.select(oSavedTree.view.rowCount - 1);
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
188 }
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
189 else{
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
190 oSavedTree.view.selection.select(iSelect);
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
191 }
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
192
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
193 }catch(err){ alert("Error 520\nCould not remove that entry.\n"+ err); }
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
194 }
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
195 }
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
196
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
197 // Add RDF Entry
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
198 function tinyurl_saved_add(tinyUrl, realUrl, title){
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
199 var sTitle = "";
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
200 var sTimestamp = (new Date()).getTime();
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
201 var sTiny = tinyUrl;
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
202 var sReal = realUrl;
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
203 var sPageTitle = (title == null) ? "" : title;
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
204 var sUri = "http://jgillick.nettripper.com/tinyurl/";
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
205 var oRes = null;
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
206
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
207 tinyurl_saved_rdfCreate();
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
208
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
209 // Get Uri
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
210 if(sTiny.length > "http://tinyurl.com/".length){
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
211 sUri += sTiny.substring(("http://tinyurl.com/".length));
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
212 }
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
213 else{ sUri = null; }
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
214
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
215 // Is this TinyUrl already saved?
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
216 try{
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
217 tinyurl_saved_initRdf();
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
218 oRes = gTinyRdf.GetResource(sUri);
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
219
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
220 if(gTinyRdfC.IndexOf(oRes) > -1){
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
221 alert("You have already saved a TinyUrl entry for that URL.")
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
222 return false;
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
223 }
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
224 }catch(err){ }
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
225
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
226 if(!sTiny || !sReal)
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
227 return;
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
228
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
229 // Check Uri
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
230 if(sUri == null){
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
231 alert("Error 540\nCould not save that TinyUrl.\n"+ tinyUrl);
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
232 return false;
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
233 }
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
234
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
235 // Get Title
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
236 while(true){
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
237 sTitle = prompt("Title to save it under:", sPageTitle);
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
238
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
239 // Empty
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
240 if(sTitle == ""){
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
241 alert("You must enter a title.");
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
242 }
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
243 // null (cancel)
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
244 else if(sTitle == null){
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
245 break;
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
246 }
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
247 // Duplicate
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
248 else if(tinyurl_saved_getUriForTitle(sTitle) != null){
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
249 alert("A saved TinyUrl entry already exists with that title.");
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
250 sTitle
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
251 }
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
252 else{
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
253 break;
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
254 }
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
255 }
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
256
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
257 if(sTitle != null){
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
258 try{
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
259 tinyurl_saved_initRdf()
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
260 var oRes = gTinyRdf.GetResource(sUri);
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
261 gTinyRdfC.AppendElement(oRes);
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
262 gTinyDs.Assert(oRes, gTinyRdf.GetResource("http://jgillick.nettripper.com/tinyurl/rdf#title"), gTinyRdf.GetLiteral(sTitle), true);
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
263 gTinyDs.Assert(oRes, gTinyRdf.GetResource("http://jgillick.nettripper.com/tinyurl/rdf#tinyurl"), gTinyRdf.GetLiteral(sTiny), true);
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
264 gTinyDs.Assert(oRes, gTinyRdf.GetResource("http://jgillick.nettripper.com/tinyurl/rdf#realurl"), gTinyRdf.GetLiteral(sReal), true);
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
265 gTinyDs.Assert(oRes, gTinyRdf.GetResource("http://jgillick.nettripper.com/tinyurl/rdf#created"), gTinyRdf.GetLiteral(sTimestamp), true);
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
266
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
267
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
268 // Rewrite Tree
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
269 tinyurl_saved_read();
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
270
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
271 return true;
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
272 }catch(err){
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
273 alert("Error 541\nCould not save that TinyUrl.\n"+ err);
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
274 }
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
275 }
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
276
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
277 return false;
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
278 }
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
279
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
280 // Get favicon.ico for url
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
281 function tinyurl_saved_getFavIcon(sUrl){
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
282 if(opener){
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
283
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
284 // Get Url for favicon.ico
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
285 var oUri = Components.classes["@mozilla.org/network/standard-url;1"].createInstance(Components.interfaces.nsIURI);
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
286 oUri.spec = sUrl;
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
287 var sFavUri = opener.gBrowser.buildFavIconString(oUri);
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
288
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
289 // Verify Exists
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
290 try{
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
291 var oRequest = new XMLHttpRequest();
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
292 oRequest.open("GET", sFavUri, false);
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
293 oRequest.send("");
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
294
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
295 if(oRequest.status == 200)
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
296 return sFavUri;
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
297
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
298 }catch(err) { }
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
299 }
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
300
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
301 return "";
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
302 }
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
303
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
304
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
305 // Get Data From Entry
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
306 function tinyurl_saved_getEntry(sUri){
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
307 var aProps = new Array();
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
308
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
309 try{
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
310 tinyurl_saved_initRdf();
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
311
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
312 var oRes = gTinyRdf.GetResource(sUri);
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
313
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
314 // Get Resources
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
315 aProps["title"] = gTinyDs.GetTarget(oRes, gTinyRdf.GetResource("http://jgillick.nettripper.com/tinyurl/rdf#title"), true);
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
316 aProps["tinyurl"] = gTinyDs.GetTarget(oRes, gTinyRdf.GetResource("http://jgillick.nettripper.com/tinyurl/rdf#tinyurl"), true);
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
317 aProps["realurl"] = gTinyDs.GetTarget(oRes, gTinyRdf.GetResource("http://jgillick.nettripper.com/tinyurl/rdf#realurl"), true);
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
318 aProps["created"] = gTinyDs.GetTarget(oRes, gTinyRdf.GetResource("http://jgillick.nettripper.com/tinyurl/rdf#created"), true);
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
319
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
320 // Get Values
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
321 (aProps["title"] instanceof Components.interfaces.nsIRDFLiteral) ? aProps["title"] = aProps["title"].Value : aProps["title"] = "";
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
322 (aProps["tinyurl"] instanceof Components.interfaces.nsIRDFLiteral) ? aProps["tinyurl"] = aProps["tinyurl"].Value : aProps["tinyurl"] = "";
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
323 (aProps["realurl"] instanceof Components.interfaces.nsIRDFLiteral) ? aProps["realurl"] = aProps["realurl"].Value : aProps["realurl"] = "";
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
324 (aProps["created"] instanceof Components.interfaces.nsIRDFLiteral) ? aProps["created"] = aProps["created"].Value : aProps["created"] = "";
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
325
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
326 }catch(err){ throw err; }
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
327
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
328 return aProps;
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
329 }
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
330
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
331 // Get Uri for title
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
332 function tinyurl_saved_getUriForTitle(sTitle){
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
333 try{
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
334 tinyurl_saved_initRdf();
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
335
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
336 var oSubject = gTinyDs.GetSource(gTinyRdf.GetResource("http://jgillick.nettripper.com/tinyurl/rdf#title"), gTinyRdf.GetLiteral(sTitle), true);
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
337 if(oSubject instanceof Components.interfaces.nsIRDFResource)
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
338 return oSubject.Value
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
339
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
340 }catch(err) { throw err; }
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
341
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
342 return null;
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
343 }
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
344
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
345 // Change Title to sTitle for sUri
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
346 function tinyurl_saved_changeTitle(sUri, sTitle){
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
347 try{
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
348 tinyurl_saved_initRdf();
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
349
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
350 var oRes = gTinyRdf.GetResource(sUri);
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
351 var oProp = gTinyRdf.GetResource("http://jgillick.nettripper.com/tinyurl/rdf#title");
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
352 var sOld = gTinyDs.GetTarget(oRes, oProp, true); // Old Value
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
353
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
354 //Change
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
355 gTinyDs.Change(oRes, oProp, sOld, gTinyRdf.GetLiteral(sTitle));
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
356
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
357 }catch(err) { throw err; }
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
358
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
359 return null;
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
360 }
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
361
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
362
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
363 // Init RDF Objects
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
364 function tinyurl_saved_initRdf(){
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
365 try{
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
366 if(gTinyRdf == null)
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
367 gTinyRdf = Components.classes["@mozilla.org/rdf/rdf-service;1"].getService(Components.interfaces.nsIRDFService);
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
368 if(gTinyDs == null)
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
369 gTinyDs = gTinyRdf.GetDataSourceBlocking("file:///"+ sTinyRdfPath);
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
370 if(gTinyRdfUtil == null)
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
371 gTinyRdfUtil = Components.classes["@mozilla.org/rdf/container-utils;1"].getService(Components.interfaces.nsIRDFContainerUtils);
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
372 if(gTinyRdfC == null){
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
373 gTinyRdfC = Components.classes["@mozilla.org/rdf/container;1"].createInstance(Components.interfaces.nsIRDFContainer);
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
374
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
375 //Get or Add Sequence
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
376 if(gTinyRdfUtil.IsSeq(gTinyDs, gTinyRdf.GetResource(gTinyRdfRoot))){
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
377 gTinyRdfC.Init(gTinyDs, gTinyRdf.GetResource(gTinyRdfRoot));
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
378 }else{
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
379 gTinyRdfC = gTinyRdfUtil.MakeSeq(gTinyDs, gTinyRdf.GetResource(gTinyRdfRoot)); //Create
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
380 }
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
381 }
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
382
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
383 }catch(err){throw err}
c14d52a3b2fe initial import
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
384 }