Skip to content

Commit e03773d

Browse files
stulzqlizhiqiang
authored andcommitted
初始化提交
1 parent b9fa803 commit e03773d

File tree

11 files changed

+618
-0
lines changed

11 files changed

+618
-0
lines changed

.vs/CnBlogPublishTool/v15/Server/sqlite3/db.lock

Whitespace-only changes.
596 KB
Binary file not shown.

CnBlogPublishTool.sln

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
2+
Microsoft Visual Studio Solution File, Format Version 12.00
3+
# Visual Studio 15
4+
VisualStudioVersion = 15.0.27428.2043
5+
MinimumVisualStudioVersion = 10.0.40219.1
6+
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "CnBlogPublishTool", "CnBlogPublishTool\CnBlogPublishTool.csproj", "{25454559-2F8E-4D54-B7D9-76D6A47BAF3F}"
7+
EndProject
8+
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{2A364680-E06B-424C-A860-B191DB766B04}"
9+
ProjectSection(SolutionItems) = preProject
10+
publish.bat = publish.bat
11+
EndProjectSection
12+
EndProject
13+
Global
14+
GlobalSection(SolutionConfigurationPlatforms) = preSolution
15+
Debug|Any CPU = Debug|Any CPU
16+
Release|Any CPU = Release|Any CPU
17+
EndGlobalSection
18+
GlobalSection(ProjectConfigurationPlatforms) = postSolution
19+
{25454559-2F8E-4D54-B7D9-76D6A47BAF3F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
20+
{25454559-2F8E-4D54-B7D9-76D6A47BAF3F}.Debug|Any CPU.Build.0 = Debug|Any CPU
21+
{25454559-2F8E-4D54-B7D9-76D6A47BAF3F}.Release|Any CPU.ActiveCfg = Release|Any CPU
22+
{25454559-2F8E-4D54-B7D9-76D6A47BAF3F}.Release|Any CPU.Build.0 = Release|Any CPU
23+
EndGlobalSection
24+
GlobalSection(SolutionProperties) = preSolution
25+
HideSolutionNode = FALSE
26+
EndGlobalSection
27+
GlobalSection(ExtensibilityGlobals) = postSolution
28+
SolutionGuid = {C3EBCEBB-EE56-465C-B548-132C31709785}
29+
EndGlobalSection
30+
EndGlobal
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
<Project Sdk="Microsoft.NET.Sdk">
2+
3+
<PropertyGroup>
4+
<OutputType>Exe</OutputType>
5+
<TargetFramework>netcoreapp2.0</TargetFramework>
6+
</PropertyGroup>
7+
8+
<ItemGroup>
9+
<PackageReference Include="MetaWeblogClient.Core" Version="1.1.0" />
10+
</ItemGroup>
11+
12+
<ItemGroup>
13+
<None Update="test.md">
14+
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
15+
</None>
16+
</ItemGroup>
17+
18+
</Project>

CnBlogPublishTool/ITagProcessor.cs

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
using System.Collections.Generic;
2+
3+
namespace CnBlogPublishTool
4+
{
5+
public interface ITagProcessor
6+
{
7+
List<string> Process(string content);
8+
}
9+
}
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
using System.Collections.Generic;
2+
using System.Text.RegularExpressions;
3+
4+
namespace CnBlogPublishTool
5+
{
6+
public class ImageProcessor:ITagProcessor
7+
{
8+
const string MatchRule= @"!\[.*?\]\((.*?)\)";
9+
public List<string> Process(string content)
10+
{
11+
List<string> result=new List<string>();
12+
13+
var matchs = Regex.Matches(content, MatchRule, RegexOptions.IgnoreCase | RegexOptions.RightToLeft);
14+
15+
foreach (Match match in matchs)
16+
{
17+
result.Add(match.Groups[1].Value);
18+
}
19+
20+
return result;
21+
}
22+
}
23+
}

CnBlogPublishTool/ImageUploader.cs

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
using System;
2+
using System.IO;
3+
using MetaWeblogClient;
4+
5+
namespace CnBlogPublishTool
6+
{
7+
public class ImageUploader
8+
{
9+
public static Client BlogClient;
10+
11+
static ImageUploader()
12+
{
13+
BlogClient=new Client(new BlogConnectionInfo("http://www.cnblogs.com/stulzq", "https://rpc.cnblogs.com/metaweblog/stulzq", "stulzq","stulzq","@xiaoCHEN520"));
14+
}
15+
16+
public static string Upload(string filePath)
17+
{
18+
FileInfo fileinfo = new FileInfo(filePath);
19+
var mediaObjectInfo = BlogClient.NewMediaObject(fileinfo.Name, MimeMapping.GetMimeMapping(filePath), File.ReadAllBytes(filePath));
20+
return mediaObjectInfo.URL;
21+
}
22+
}
23+
}

CnBlogPublishTool/MimeMapping.cs

Lines changed: 232 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,232 @@
1+
using System;
2+
using System.Collections;
3+
4+
namespace CnBlogPublishTool
5+
{
6+
public class MimeMapping
7+
{
8+
private static Hashtable _mimeMappingTable;
9+
10+
private static void AddMimeMapping(string extension, string MimeType)
11+
{
12+
MimeMapping._mimeMappingTable.Add(extension, MimeType);
13+
}
14+
15+
public static string GetMimeMapping(string FileName)
16+
{
17+
string text = null;
18+
int num = FileName.LastIndexOf('.');
19+
if (0 < num && num > FileName.LastIndexOf('\\'))
20+
{
21+
text = (string)MimeMapping._mimeMappingTable[FileName.Substring(num)];
22+
}
23+
if (text == null)
24+
{
25+
text = (string)MimeMapping._mimeMappingTable[".*"];
26+
}
27+
return text;
28+
}
29+
30+
static MimeMapping()
31+
{
32+
MimeMapping._mimeMappingTable = new Hashtable(190, StringComparer.CurrentCultureIgnoreCase);
33+
MimeMapping.AddMimeMapping(".323", "text/h323");
34+
MimeMapping.AddMimeMapping(".asx", "video/x-ms-asf");
35+
MimeMapping.AddMimeMapping(".acx", "application/internet-property-stream");
36+
MimeMapping.AddMimeMapping(".ai", "application/postscript");
37+
MimeMapping.AddMimeMapping(".aif", "audio/x-aiff");
38+
MimeMapping.AddMimeMapping(".aiff", "audio/aiff");
39+
MimeMapping.AddMimeMapping(".axs", "application/olescript");
40+
MimeMapping.AddMimeMapping(".aifc", "audio/aiff");
41+
MimeMapping.AddMimeMapping(".asr", "video/x-ms-asf");
42+
MimeMapping.AddMimeMapping(".avi", "video/x-msvideo");
43+
MimeMapping.AddMimeMapping(".asf", "video/x-ms-asf");
44+
MimeMapping.AddMimeMapping(".au", "audio/basic");
45+
MimeMapping.AddMimeMapping(".application", "application/x-ms-application");
46+
MimeMapping.AddMimeMapping(".bin", "application/octet-stream");
47+
MimeMapping.AddMimeMapping(".bas", "text/plain");
48+
MimeMapping.AddMimeMapping(".bcpio", "application/x-bcpio");
49+
MimeMapping.AddMimeMapping(".bmp", "image/bmp");
50+
MimeMapping.AddMimeMapping(".cdf", "application/x-cdf");
51+
MimeMapping.AddMimeMapping(".cat", "application/vndms-pkiseccat");
52+
MimeMapping.AddMimeMapping(".crt", "application/x-x509-ca-cert");
53+
MimeMapping.AddMimeMapping(".c", "text/plain");
54+
MimeMapping.AddMimeMapping(".css", "text/css");
55+
MimeMapping.AddMimeMapping(".cer", "application/x-x509-ca-cert");
56+
MimeMapping.AddMimeMapping(".crl", "application/pkix-crl");
57+
MimeMapping.AddMimeMapping(".cmx", "image/x-cmx");
58+
MimeMapping.AddMimeMapping(".csh", "application/x-csh");
59+
MimeMapping.AddMimeMapping(".cod", "image/cis-cod");
60+
MimeMapping.AddMimeMapping(".cpio", "application/x-cpio");
61+
MimeMapping.AddMimeMapping(".clp", "application/x-msclip");
62+
MimeMapping.AddMimeMapping(".crd", "application/x-mscardfile");
63+
MimeMapping.AddMimeMapping(".deploy", "application/octet-stream");
64+
MimeMapping.AddMimeMapping(".dll", "application/x-msdownload");
65+
MimeMapping.AddMimeMapping(".dot", "application/msword");
66+
MimeMapping.AddMimeMapping(".doc", "application/msword");
67+
MimeMapping.AddMimeMapping(".dvi", "application/x-dvi");
68+
MimeMapping.AddMimeMapping(".dir", "application/x-director");
69+
MimeMapping.AddMimeMapping(".dxr", "application/x-director");
70+
MimeMapping.AddMimeMapping(".der", "application/x-x509-ca-cert");
71+
MimeMapping.AddMimeMapping(".dib", "image/bmp");
72+
MimeMapping.AddMimeMapping(".dcr", "application/x-director");
73+
MimeMapping.AddMimeMapping(".disco", "text/xml");
74+
MimeMapping.AddMimeMapping(".exe", "application/octet-stream");
75+
MimeMapping.AddMimeMapping(".etx", "text/x-setext");
76+
MimeMapping.AddMimeMapping(".evy", "application/envoy");
77+
MimeMapping.AddMimeMapping(".eml", "message/rfc822");
78+
MimeMapping.AddMimeMapping(".eps", "application/postscript");
79+
MimeMapping.AddMimeMapping(".flr", "x-world/x-vrml");
80+
MimeMapping.AddMimeMapping(".fif", "application/fractals");
81+
MimeMapping.AddMimeMapping(".gtar", "application/x-gtar");
82+
MimeMapping.AddMimeMapping(".gif", "image/gif");
83+
MimeMapping.AddMimeMapping(".gz", "application/x-gzip");
84+
MimeMapping.AddMimeMapping(".hta", "application/hta");
85+
MimeMapping.AddMimeMapping(".htc", "text/x-component");
86+
MimeMapping.AddMimeMapping(".htt", "text/webviewhtml");
87+
MimeMapping.AddMimeMapping(".h", "text/plain");
88+
MimeMapping.AddMimeMapping(".hdf", "application/x-hdf");
89+
MimeMapping.AddMimeMapping(".hlp", "application/winhlp");
90+
MimeMapping.AddMimeMapping(".html", "text/html");
91+
MimeMapping.AddMimeMapping(".htm", "text/html");
92+
MimeMapping.AddMimeMapping(".hqx", "application/mac-binhex40");
93+
MimeMapping.AddMimeMapping(".isp", "application/x-internet-signup");
94+
MimeMapping.AddMimeMapping(".iii", "application/x-iphone");
95+
MimeMapping.AddMimeMapping(".ief", "image/ief");
96+
MimeMapping.AddMimeMapping(".ivf", "video/x-ivf");
97+
MimeMapping.AddMimeMapping(".ins", "application/x-internet-signup");
98+
MimeMapping.AddMimeMapping(".ico", "image/x-icon");
99+
MimeMapping.AddMimeMapping(".jpg", "image/jpeg");
100+
MimeMapping.AddMimeMapping(".jfif", "image/pjpeg");
101+
MimeMapping.AddMimeMapping(".jpe", "image/jpeg");
102+
MimeMapping.AddMimeMapping(".jpeg", "image/jpeg");
103+
MimeMapping.AddMimeMapping(".js", "application/x-javascript");
104+
MimeMapping.AddMimeMapping(".lsx", "video/x-la-asf");
105+
MimeMapping.AddMimeMapping(".latex", "application/x-latex");
106+
MimeMapping.AddMimeMapping(".lsf", "video/x-la-asf");
107+
MimeMapping.AddMimeMapping(".manifest", "application/x-ms-manifest");
108+
MimeMapping.AddMimeMapping(".mhtml", "message/rfc822");
109+
MimeMapping.AddMimeMapping(".mny", "application/x-msmoney");
110+
MimeMapping.AddMimeMapping(".mht", "message/rfc822");
111+
MimeMapping.AddMimeMapping(".mid", "audio/mid");
112+
MimeMapping.AddMimeMapping(".mpv2", "video/mpeg");
113+
MimeMapping.AddMimeMapping(".man", "application/x-troff-man");
114+
MimeMapping.AddMimeMapping(".mvb", "application/x-msmediaview");
115+
MimeMapping.AddMimeMapping(".mpeg", "video/mpeg");
116+
MimeMapping.AddMimeMapping(".m3u", "audio/x-mpegurl");
117+
MimeMapping.AddMimeMapping(".mdb", "application/x-msaccess");
118+
MimeMapping.AddMimeMapping(".mpp", "application/vnd.ms-project");
119+
MimeMapping.AddMimeMapping(".m1v", "video/mpeg");
120+
MimeMapping.AddMimeMapping(".mpa", "video/mpeg");
121+
MimeMapping.AddMimeMapping(".me", "application/x-troff-me");
122+
MimeMapping.AddMimeMapping(".m13", "application/x-msmediaview");
123+
MimeMapping.AddMimeMapping(".movie", "video/x-sgi-movie");
124+
MimeMapping.AddMimeMapping(".m14", "application/x-msmediaview");
125+
MimeMapping.AddMimeMapping(".mpe", "video/mpeg");
126+
MimeMapping.AddMimeMapping(".mp2", "video/mpeg");
127+
MimeMapping.AddMimeMapping(".mov", "video/quicktime");
128+
MimeMapping.AddMimeMapping(".mp3", "audio/mpeg");
129+
MimeMapping.AddMimeMapping(".mpg", "video/mpeg");
130+
MimeMapping.AddMimeMapping(".ms", "application/x-troff-ms");
131+
MimeMapping.AddMimeMapping(".nc", "application/x-netcdf");
132+
MimeMapping.AddMimeMapping(".nws", "message/rfc822");
133+
MimeMapping.AddMimeMapping(".oda", "application/oda");
134+
MimeMapping.AddMimeMapping(".ods", "application/oleobject");
135+
MimeMapping.AddMimeMapping(".pmc", "application/x-perfmon");
136+
MimeMapping.AddMimeMapping(".p7r", "application/x-pkcs7-certreqresp");
137+
MimeMapping.AddMimeMapping(".p7b", "application/x-pkcs7-certificates");
138+
MimeMapping.AddMimeMapping(".p7s", "application/pkcs7-signature");
139+
MimeMapping.AddMimeMapping(".pmw", "application/x-perfmon");
140+
MimeMapping.AddMimeMapping(".ps", "application/postscript");
141+
MimeMapping.AddMimeMapping(".p7c", "application/pkcs7-mime");
142+
MimeMapping.AddMimeMapping(".pbm", "image/x-portable-bitmap");
143+
MimeMapping.AddMimeMapping(".ppm", "image/x-portable-pixmap");
144+
MimeMapping.AddMimeMapping(".pub", "application/x-mspublisher");
145+
MimeMapping.AddMimeMapping(".pnm", "image/x-portable-anymap");
146+
MimeMapping.AddMimeMapping(".png", "image/png");
147+
MimeMapping.AddMimeMapping(".pml", "application/x-perfmon");
148+
MimeMapping.AddMimeMapping(".p10", "application/pkcs10");
149+
MimeMapping.AddMimeMapping(".pfx", "application/x-pkcs12");
150+
MimeMapping.AddMimeMapping(".p12", "application/x-pkcs12");
151+
MimeMapping.AddMimeMapping(".pdf", "application/pdf");
152+
MimeMapping.AddMimeMapping(".pps", "application/vnd.ms-powerpoint");
153+
MimeMapping.AddMimeMapping(".p7m", "application/pkcs7-mime");
154+
MimeMapping.AddMimeMapping(".pko", "application/vndms-pkipko");
155+
MimeMapping.AddMimeMapping(".ppt", "application/vnd.ms-powerpoint");
156+
MimeMapping.AddMimeMapping(".pmr", "application/x-perfmon");
157+
MimeMapping.AddMimeMapping(".pma", "application/x-perfmon");
158+
MimeMapping.AddMimeMapping(".pot", "application/vnd.ms-powerpoint");
159+
MimeMapping.AddMimeMapping(".prf", "application/pics-rules");
160+
MimeMapping.AddMimeMapping(".pgm", "image/x-portable-graymap");
161+
MimeMapping.AddMimeMapping(".qt", "video/quicktime");
162+
MimeMapping.AddMimeMapping(".ra", "audio/x-pn-realaudio");
163+
MimeMapping.AddMimeMapping(".rgb", "image/x-rgb");
164+
MimeMapping.AddMimeMapping(".ram", "audio/x-pn-realaudio");
165+
MimeMapping.AddMimeMapping(".rmi", "audio/mid");
166+
MimeMapping.AddMimeMapping(".ras", "image/x-cmu-raster");
167+
MimeMapping.AddMimeMapping(".roff", "application/x-troff");
168+
MimeMapping.AddMimeMapping(".rtf", "application/rtf");
169+
MimeMapping.AddMimeMapping(".rtx", "text/richtext");
170+
MimeMapping.AddMimeMapping(".sv4crc", "application/x-sv4crc");
171+
MimeMapping.AddMimeMapping(".spc", "application/x-pkcs7-certificates");
172+
MimeMapping.AddMimeMapping(".setreg", "application/set-registration-initiation");
173+
MimeMapping.AddMimeMapping(".snd", "audio/basic");
174+
MimeMapping.AddMimeMapping(".stl", "application/vndms-pkistl");
175+
MimeMapping.AddMimeMapping(".setpay", "application/set-payment-initiation");
176+
MimeMapping.AddMimeMapping(".stm", "text/html");
177+
MimeMapping.AddMimeMapping(".shar", "application/x-shar");
178+
MimeMapping.AddMimeMapping(".sh", "application/x-sh");
179+
MimeMapping.AddMimeMapping(".sit", "application/x-stuffit");
180+
MimeMapping.AddMimeMapping(".spl", "application/futuresplash");
181+
MimeMapping.AddMimeMapping(".sct", "text/scriptlet");
182+
MimeMapping.AddMimeMapping(".scd", "application/x-msschedule");
183+
MimeMapping.AddMimeMapping(".sst", "application/vndms-pkicertstore");
184+
MimeMapping.AddMimeMapping(".src", "application/x-wais-source");
185+
MimeMapping.AddMimeMapping(".sv4cpio", "application/x-sv4cpio");
186+
MimeMapping.AddMimeMapping(".tex", "application/x-tex");
187+
MimeMapping.AddMimeMapping(".tgz", "application/x-compressed");
188+
MimeMapping.AddMimeMapping(".t", "application/x-troff");
189+
MimeMapping.AddMimeMapping(".tar", "application/x-tar");
190+
MimeMapping.AddMimeMapping(".tr", "application/x-troff");
191+
MimeMapping.AddMimeMapping(".tif", "image/tiff");
192+
MimeMapping.AddMimeMapping(".txt", "text/plain");
193+
MimeMapping.AddMimeMapping(".texinfo", "application/x-texinfo");
194+
MimeMapping.AddMimeMapping(".trm", "application/x-msterminal");
195+
MimeMapping.AddMimeMapping(".tiff", "image/tiff");
196+
MimeMapping.AddMimeMapping(".tcl", "application/x-tcl");
197+
MimeMapping.AddMimeMapping(".texi", "application/x-texinfo");
198+
MimeMapping.AddMimeMapping(".tsv", "text/tab-separated-values");
199+
MimeMapping.AddMimeMapping(".ustar", "application/x-ustar");
200+
MimeMapping.AddMimeMapping(".uls", "text/iuls");
201+
MimeMapping.AddMimeMapping(".vcf", "text/x-vcard");
202+
MimeMapping.AddMimeMapping(".wps", "application/vnd.ms-works");
203+
MimeMapping.AddMimeMapping(".wav", "audio/wav");
204+
MimeMapping.AddMimeMapping(".wrz", "x-world/x-vrml");
205+
MimeMapping.AddMimeMapping(".wri", "application/x-mswrite");
206+
MimeMapping.AddMimeMapping(".wks", "application/vnd.ms-works");
207+
MimeMapping.AddMimeMapping(".wmf", "application/x-msmetafile");
208+
MimeMapping.AddMimeMapping(".wcm", "application/vnd.ms-works");
209+
MimeMapping.AddMimeMapping(".wrl", "x-world/x-vrml");
210+
MimeMapping.AddMimeMapping(".wdb", "application/vnd.ms-works");
211+
MimeMapping.AddMimeMapping(".wsdl", "text/xml");
212+
MimeMapping.AddMimeMapping(".xap", "application/x-silverlight-app");
213+
MimeMapping.AddMimeMapping(".xml", "text/xml");
214+
MimeMapping.AddMimeMapping(".xlm", "application/vnd.ms-excel");
215+
MimeMapping.AddMimeMapping(".xaf", "x-world/x-vrml");
216+
MimeMapping.AddMimeMapping(".xla", "application/vnd.ms-excel");
217+
MimeMapping.AddMimeMapping(".xls", "application/vnd.ms-excel");
218+
MimeMapping.AddMimeMapping(".xof", "x-world/x-vrml");
219+
MimeMapping.AddMimeMapping(".xlt", "application/vnd.ms-excel");
220+
MimeMapping.AddMimeMapping(".xlc", "application/vnd.ms-excel");
221+
MimeMapping.AddMimeMapping(".xsl", "text/xml");
222+
MimeMapping.AddMimeMapping(".xbm", "image/x-xbitmap");
223+
MimeMapping.AddMimeMapping(".xlw", "application/vnd.ms-excel");
224+
MimeMapping.AddMimeMapping(".xpm", "image/x-xpixmap");
225+
MimeMapping.AddMimeMapping(".xwd", "image/x-xwindowdump");
226+
MimeMapping.AddMimeMapping(".xsd", "text/xml");
227+
MimeMapping.AddMimeMapping(".z", "application/x-compress");
228+
MimeMapping.AddMimeMapping(".zip", "application/x-zip-compressed");
229+
MimeMapping.AddMimeMapping(".*", "application/octet-stream");
230+
}
231+
}
232+
}

0 commit comments

Comments
 (0)