~cszikszoy/do-plugins/pastebin

« back to all changes in this revision

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

  • Committer: Christopher Halse Rogers
  • Date: 2008-08-24 08:44:24 UTC
  • mfrom: (244.1.2 do-plugins)
  • Revision ID: raof@ubuntu.com-20080824084424-8gp5ff6v9nku9z21
Merge in the tip of 0.6

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
//  PastebinCA.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 PastebinCA : IPastebinProvider
 
29
   {
 
30
       private const string urlRoot = "http://pastebin.ca";
 
31
 
 
32
       private NameValueCollection parameters;
 
33
       private List<TextSyntaxItem> supportedLanguages;
 
34
 
 
35
       public PastebinCA ()
 
36
       {
 
37
           parameters = new NameValueCollection();
 
38
           parameters["api"] = "4xPQUdtxHQ9wxlAJ9t/ztpv36MM/ZE9G";
 
39
           parameters["type"] = "1";
 
40
           parameters["description"] = "";
 
41
           parameters["content"] = "";
 
42
           parameters["name"] = "";
 
43
           parameters["expiry"] = "1 month";
 
44
 
 
45
           supportedLanguages = new List<TextSyntaxItem>();
 
46
           supportedLanguages.Add (new TextSyntaxItem ("Plain Text", "Plain Text", "file", "1"));
 
47
           supportedLanguages.Add (new TextSyntaxItem ("Actionscript", "Actionscript", "file", "18"));
 
48
           supportedLanguages.Add (new TextSyntaxItem ("Ada", "Ada", "file", "19"));
 
49
           supportedLanguages.Add (new TextSyntaxItem ("Apache Config", "Apache Config", "file", "20"));
 
50
           supportedLanguages.Add (new TextSyntaxItem ("ASP", "ASP", "file", "22"));
 
51
           supportedLanguages.Add (new TextSyntaxItem ("Bash", "Bash", "file", "23"));
 
52
           supportedLanguages.Add (new TextSyntaxItem ("C", "C", "file", "3"));
 
53
           supportedLanguages.Add (new TextSyntaxItem ("C++", "C++", "file", "4"));
 
54
           supportedLanguages.Add (new TextSyntaxItem ("C#", "C#", "file", "9"));
 
55
           supportedLanguages.Add (new TextSyntaxItem ("CSS", "CSS", "file", "24"));
 
56
           supportedLanguages.Add (new TextSyntaxItem ("Delphi", "Delphi", "file", "25"));
 
57
           supportedLanguages.Add (new TextSyntaxItem ("Diff / Patch", "Diff / Patch", "file", "34"));
 
58
           supportedLanguages.Add (new TextSyntaxItem ("HTML 4 Strict", "HTML 4 Strict", "file", "26"));
 
59
           supportedLanguages.Add (new TextSyntaxItem ("Java", "Java", "file", "7"));
 
60
           supportedLanguages.Add (new TextSyntaxItem ("Javascript", "Javascript", "file", "27"));
 
61
           supportedLanguages.Add (new TextSyntaxItem ("LISP", "LISP", "file", "28"));
 
62
           supportedLanguages.Add (new TextSyntaxItem ("Lua", "Lua", "file", "29"));
 
63
           supportedLanguages.Add (new TextSyntaxItem ("Microprocessor ASM", "Microprocessor ASM", "file", "30"));
 
64
           supportedLanguages.Add (new TextSyntaxItem ("mIRC Script", "mIRC SCript", "file", "13"));
 
65
           supportedLanguages.Add (new TextSyntaxItem ("Objective C", "Objective C", "file", "31"));
 
66
           supportedLanguages.Add (new TextSyntaxItem ("Perl", "Perl", "file", "6"));
 
67
           supportedLanguages.Add (new TextSyntaxItem ("PHP", "PHP", "file", "5"));
 
68
           supportedLanguages.Add (new TextSyntaxItem ("PL/I", "PL/I", "file", "14"));
 
69
           supportedLanguages.Add (new TextSyntaxItem ("Python", "Python", "file", "11"));
 
70
           supportedLanguages.Add (new TextSyntaxItem ("Ruby", "Ruby", "file", "10"));
 
71
           supportedLanguages.Add (new TextSyntaxItem ("SQL", "SQL", "file", "16"));
 
72
           supportedLanguages.Add (new TextSyntaxItem ("Scheme", "Scheme", "file", "17"));
 
73
           supportedLanguages.Add (new TextSyntaxItem ("Script Log", "Script Log", "file", "33"));
 
74
           supportedLanguages.Add (new TextSyntaxItem ("Visual BASIC", "Visual BASIC", "file", "8"));
 
75
           supportedLanguages.Add (new TextSyntaxItem ("VB.NET", "VB.NET", "file", "32"));
 
76
           supportedLanguages.Add (new TextSyntaxItem ("XML", "XML", "file", "15"));
 
77
       }
 
78
 
 
79
       public PastebinCA(string content, string syntax)
 
80
           : this()
 
81
       {
 
82
           parameters["type"] = syntax;
 
83
           parameters["content"] = content;
 
84
       }
 
85
 
 
86
       public PastebinCA(string content)
 
87
           : this()
 
88
       {
 
89
           parameters["content"] = content;
 
90
       }
 
91
 
 
92
       public bool ShouldAllowAutoRedirect
 
93
       {
 
94
           get { return true; }
 
95
       }
 
96
 
 
97
       public string BaseUrl
 
98
       {
 
99
           get { return urlRoot + "/quiet-paste.php"; }
 
100
       }
 
101
 
 
102
       public NameValueCollection Parameters
 
103
       {
 
104
           get { return parameters; }
 
105
       }
 
106
 
 
107
       public string GetPasteUrlFromResponse(HttpWebResponse response)
 
108
       {
 
109
           string responseText;
 
110
           using (Stream responseStream = response.GetResponseStream ()) {
 
111
               using (StreamReader reader = new StreamReader (responseStream)) {
 
112
                   responseText = reader.ReadToEnd ();
 
113
               }
 
114
           }
 
115
 
 
116
           string url = String.Empty;
 
117
           if (responseText.Contains ("SUCCESS")) {
 
118
               url = urlRoot + "/" + responseText.Split (new string[]{":"}, StringSplitOptions.RemoveEmptyEntries)[1];
 
119
           }
 
120
 
 
121
           return url;
 
122
       }
 
123
 
 
124
       public List<TextSyntaxItem> SupportedLanguages
 
125
       {
 
126
           get { return supportedLanguages; }
 
127
       }
 
128
   }
 
129
}
 
 
b'\\ No newline at end of file'