~cszikszoy/do-plugins/pastebin

« back to all changes in this revision

Viewing changes to Pastebin/src/Providers/LodgeIt.cs

  • Committer: Jason Jones
  • Date: 2008-11-19 01:49:28 UTC
  • Revision ID: jasonedwardjones@gmail.com-20081119014928-ahvnxb3yursnq7lh
Adding LodgeIt pastebin provider.

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
//  LodgeIt.cs
 
2
//
 
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.
 
6
//
 
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)
 
10
//  any later version.
 
11
//
 
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
 
15
//  more details.
 
16
//
 
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/>.
 
19
 
 
20
using System;
 
21
using System.IO;
 
22
using System.Net;
 
23
using System.Collections.Generic;
 
24
using System.Collections.Specialized;
 
25
 
 
26
namespace Pastebin
 
27
{
 
28
        public class LodgeIt : IPastebinProvider
 
29
        {               
 
30
                private const string urlRoot = "http://paste.pocoo.org/";
 
31
        
 
32
                private NameValueCollection parameters;
 
33
                private List<TextSyntaxItem> supportedLanguages;
 
34
                
 
35
                public LodgeIt ()
 
36
                {
 
37
                        parameters = new NameValueCollection();
 
38
                        parameters["language"] = "text";
 
39
                        parameters["code"] = "";
 
40
                        
 
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"));
 
85
                }
 
86
        
 
87
                public LodgeIt (string content, string syntax) : this ()
 
88
                {               
 
89
                        parameters["language"] = syntax;
 
90
                        parameters["code"] = content;
 
91
                }
 
92
                
 
93
                public LodgeIt (string content) : this ()
 
94
                {               
 
95
                        parameters["code"] = content;
 
96
                }
 
97
 
 
98
                public bool ShouldAllowAutoRedirect
 
99
                {
 
100
                        get { return false; }
 
101
                }
 
102
                
 
103
                public string BaseUrl 
 
104
                { 
 
105
                        get { return urlRoot; } 
 
106
                }
 
107
                
 
108
                public NameValueCollection Parameters 
 
109
                { 
 
110
                        get { return parameters; } 
 
111
                }
 
112
                
 
113
                public string GetPasteUrlFromResponse (HttpWebResponse response)
 
114
                {       
 
115
                        string responseText;
 
116
                        using (Stream responseStream = response.GetResponseStream ()) {
 
117
               using (StreamReader reader = new StreamReader (responseStream)) {
 
118
                   responseText = reader.ReadToEnd ();
 
119
               }
 
120
                        }
 
121
                        return responseText;
 
122
                }
 
123
                
 
124
                public List<TextSyntaxItem> SupportedLanguages 
 
125
                { 
 
126
                        get { return supportedLanguages; }
 
127
                }
 
128
        }
 
129
}