3
// GNOME Do is the legal property of its developers, whose names are too
4
// numerous to list here. Please refer to the COPYRIGHT file distributed with
5
// this source distribution.
7
// This program is free software: you can redistribute it and/or modify it
8
// under the terms of the GNU General Public License as published by the Free
9
// Software Foundation, either version 3 of the License, or (at your option)
12
// This program is distributed in the hope that it will be useful, but WITHOUT
13
// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
14
// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
17
// You should have received a copy of the GNU General Public License along with
18
// this program. If not, see <http://www.gnu.org/licenses/>.
23
using System.Collections.Generic;
24
using System.Collections.Specialized;
28
public class LodgeIt : IPastebinProvider
30
private const string urlRoot = "http://paste.pocoo.org/";
32
private NameValueCollection parameters;
33
private List<TextSyntaxItem> supportedLanguages;
37
parameters = new NameValueCollection();
38
parameters["language"] = "text";
39
parameters["code"] = "";
41
supportedLanguages = new List<TextSyntaxItem> ();
42
supportedLanguages.Add (new TextSyntaxItem ("Apache Config (.htaccess)", "Apache Config (.htaccess)", "file", "apache"));
43
supportedLanguages.Add (new TextSyntaxItem ("Bash", "Bash", "file", "bash"));
44
supportedLanguages.Add (new TextSyntaxItem ("Batch (.bat)", "Batch (.bat)", "file", "bat"));
45
supportedLanguages.Add (new TextSyntaxItem ("C", "C", "file", "c"));
46
supportedLanguages.Add (new TextSyntaxItem ("C#", "C#", "file", "csharp"));
47
supportedLanguages.Add (new TextSyntaxItem ("C++", "C++", "file", "cpp"));
48
supportedLanguages.Add (new TextSyntaxItem ("CSS", "CSS", "file", "css"));
49
supportedLanguages.Add (new TextSyntaxItem ("D", "D", "file", "d"));
50
supportedLanguages.Add (new TextSyntaxItem ("Django / Jinja Templates", "Django / Jinja Templates", "file", "html+django"));
51
supportedLanguages.Add (new TextSyntaxItem ("Dylan", "Dylan", "file", "dylan"));
52
supportedLanguages.Add (new TextSyntaxItem ("Erlang", "Erlang", "file", "erlang"));
53
supportedLanguages.Add (new TextSyntaxItem ("GAS", "GAS", "file", "gas"));
54
supportedLanguages.Add (new TextSyntaxItem ("Genshi Templates", "Genshi Templates", "file", "html+genshi"));
55
supportedLanguages.Add (new TextSyntaxItem ("HTML", "HTML", "file", "html"));
56
supportedLanguages.Add (new TextSyntaxItem ("Haskell", "Haskell", "file", "haskell"));
57
supportedLanguages.Add (new TextSyntaxItem ("IRC Logs", "IRC Logs", "file", "irc"));
58
supportedLanguages.Add (new TextSyntaxItem ("Interactive Ruby", "Interactive Ruby", "file", "irb"));
59
supportedLanguages.Add (new TextSyntaxItem ("JSP", "JSP", "file", "jsp"));
60
supportedLanguages.Add (new TextSyntaxItem ("Java", "Java", "file", "java"));
61
supportedLanguages.Add (new TextSyntaxItem ("JavaScript", "JavaScript", "file", "js"));
62
supportedLanguages.Add (new TextSyntaxItem ("Lua", "Lua", "file", "lua"));
63
supportedLanguages.Add (new TextSyntaxItem ("Mako Templates", "Mako Templates", "file", "html+mako"));
64
supportedLanguages.Add (new TextSyntaxItem ("MiniD", "MiniD", "file", "minid"));
65
supportedLanguages.Add (new TextSyntaxItem ("Myghty Templates", "Myghty Templates", "file", "html+myghty"));
66
supportedLanguages.Add (new TextSyntaxItem ("OCaml", "OCaml", "file", "ocaml"));
67
supportedLanguages.Add (new TextSyntaxItem ("PHP", "PHP", "file", "html+php"));
68
supportedLanguages.Add (new TextSyntaxItem ("Perl", "Perl", "file", "perl"));
69
supportedLanguages.Add (new TextSyntaxItem ("Python", "Python", "file", "python"));
70
supportedLanguages.Add (new TextSyntaxItem ("Python Console Sessions", "Python Console Sessions", "file", "pycon"));
71
supportedLanguages.Add (new TextSyntaxItem ("Python Tracebacks", "Python Tracebacks", "file", "pytb"));
72
supportedLanguages.Add (new TextSyntaxItem ("Ruby", "Ruby", "file", "ruby"));
73
supportedLanguages.Add (new TextSyntaxItem ("SQL", "SQL", "file", "sql"));
74
supportedLanguages.Add (new TextSyntaxItem ("Scheme", "Scheme", "file", "scheme"));
75
supportedLanguages.Add (new TextSyntaxItem ("Smarty", "Smarty", "file", "smarty"));
76
supportedLanguages.Add (new TextSyntaxItem ("SquidConf", "SquidConf", "file", "squidconf"));
77
supportedLanguages.Add (new TextSyntaxItem ("TeX / LaTeX", "TeX / LaTeX", "file", "tex"));
78
supportedLanguages.Add (new TextSyntaxItem ("Text", "Text", "file", "text"));
79
supportedLanguages.Add (new TextSyntaxItem ("Unified Diff", "Unified Diff", "file", "diff"));
80
supportedLanguages.Add (new TextSyntaxItem ("Vim", "Vim", "file", "vim"));
81
supportedLanguages.Add (new TextSyntaxItem ("XML", "XML", "file", "xml"));
82
supportedLanguages.Add (new TextSyntaxItem ("eRuby / rhtml", "eRuby / rhtml", "file", "rhtml"));
83
supportedLanguages.Add (new TextSyntaxItem ("reStructuredText", "reStructuredText", "file", "rst"));
84
supportedLanguages.Add (new TextSyntaxItem ("sources.list", "sources.list", "file", "sourceslist"));
87
public LodgeIt (string content, string syntax) : this ()
89
parameters["language"] = syntax;
90
parameters["code"] = content;
93
public LodgeIt (string content) : this ()
95
parameters["code"] = content;
98
public bool ShouldAllowAutoRedirect
100
get { return false; }
103
public string BaseUrl
105
get { return urlRoot; }
108
public NameValueCollection Parameters
110
get { return parameters; }
113
public string GetPasteUrlFromResponse (HttpWebResponse response)
116
using (Stream responseStream = response.GetResponseStream ()) {
117
using (StreamReader reader = new StreamReader (responseStream)) {
118
responseText = reader.ReadToEnd ();
124
public List<TextSyntaxItem> SupportedLanguages
126
get { return supportedLanguages; }