OSDN Git Service

Port nicoms.vb to C#
authorEgtra <yusuke.ichinohe@gmail.com>
Sun, 11 Dec 2011 08:25:34 +0000 (17:25 +0900)
committerKimura Youichi <kim.upsilon@bucyou.net>
Wed, 22 Feb 2012 10:47:45 +0000 (19:47 +0900)
Tween/Tween.vbproj
Tween/nicoms.vb [deleted file]
TweenCS/TweenCS.csproj
TweenCS/nicoms.cs [new file with mode: 0644]

index 05f739d..4f0819f 100644 (file)
     <Compile Include="MyLists.vb">
       <SubType>Form</SubType>
     </Compile>
-    <Compile Include="nicoms.vb" />
     <Compile Include="Setting\SettingAtIdList.vb" />
     <Compile Include="Setting\SettingLocal.vb" />
     <Compile Include="Setting\SettingFollower.vb" />
diff --git a/Tween/nicoms.vb b/Tween/nicoms.vb
deleted file mode 100644 (file)
index d2a4ffd..0000000
+++ /dev/null
@@ -1,65 +0,0 @@
-' Tween - Client of Twitter
-' Copyright (c) 2007-2011 kiri_feather (@kiri_feather) <kiri.feather@gmail.com>
-'           (c) 2008-2011 Moz (@syo68k)
-'           (c) 2008-2011 takeshik (@takeshik) <http://www.takeshik.org/>
-'           (c) 2010-2011 anis774 (@anis774) <http://d.hatena.ne.jp/anis774/>
-'           (c) 2010-2011 fantasticswallow (@f_swallow) <http://twitter.com/f_swallow>
-' All rights reserved.
-' 
-' This file is part of Tween.
-' 
-' This program is free software; you can redistribute it and/or modify it
-' under the terms of the GNU General Public License as published by the Free
-' Software Foundation; either version 3 of the License, or (at your option)
-' any later version.
-' 
-' This program is distributed in the hope that it will be useful, but
-' WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
-' or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
-' for more details. 
-' 
-' You should have received a copy of the GNU General Public License along
-' with this program. If not, see <http://www.gnu.org/licenses/>, or write to
-' the Free Software Foundation, Inc., 51 Franklin Street - Fifth Floor,
-' Boston, MA 02110-1301, USA.
-
-Public Class nicoms
-    Private Shared _nicovideo() As String = { _
-        "www.nicovideo.jp/watch/", _
-        "live.nicovideo.jp/watch/", _
-        "live.nicovideo.jp/gate/", _
-        "live.nicolive.jp/gate/", _
-        "co.nicovideo.jp/community/", _
-        "com.nicovideo.jp/community/", _
-        "ch.nicovideo.jp/channel/", _
-        "nicovideo.jp/watch/", _
-        "seiga.nicovideo.jp/bbs/", _
-        "www.niconicommons.jp/material/", _
-        "niconicommons.jp/material/", _
-        "news.nicovideo.jp/watch/"}
-
-    Public Shared Function Shorten(ByVal url As String) As String
-        '\90®\8c`\81ihttp(s)://\82ð\8dí\8f\9c\81j
-        If url.Length > 7 AndAlso url.Length < 128 AndAlso url.StartsWith("http://", StringComparison.OrdinalIgnoreCase) Then
-            url = url.Substring(7)
-        Else
-            Return url
-        End If
-
-        For Each nv As String In _nicovideo
-            If url.StartsWith(nv) Then Return String.Format("{0}{1}", "http://nico.ms/", url.Substring(nv.Length))
-        Next
-
-        Dim i As Integer
-        i = url.IndexOf("nicovideo.jp/user/", StringComparison.OrdinalIgnoreCase)
-        If i = 0 OrElse i = 4 Then Return String.Format("{0}{1}", "http://nico.ms/", url.Substring(13 + i))
-
-        i = url.IndexOf("nicovideo.jp/mylist/", StringComparison.OrdinalIgnoreCase)
-        If i = 0 OrElse i = 4 Then Return String.Format("{0}{1}", "http://nico.ms/", url.Substring(13 + i))
-
-        i = url.IndexOf("seiga.nicovideo.jp/watch/", StringComparison.OrdinalIgnoreCase)
-        If i = 0 Then Return String.Format("{0}{1}", "http://nico.ms/", url.Substring(25))
-
-        Return "http://" + url
-    End Function
-End Class
index d763a54..3699723 100644 (file)
@@ -74,6 +74,7 @@
     <Compile Include="HookGlobalHotkey.cs" />
     <Compile Include="MyCommon.cs" />
     <Compile Include="MySpecialPath.cs" />
+    <Compile Include="nicoms.cs" />
     <Compile Include="OpenURL.cs">
       <SubType>Form</SubType>
     </Compile>
diff --git a/TweenCS/nicoms.cs b/TweenCS/nicoms.cs
new file mode 100644 (file)
index 0000000..01e2263
--- /dev/null
@@ -0,0 +1,78 @@
+// Tween - Client of Twitter
+// Copyright (c) 2007-2011 kiri_feather (@kiri_feather) <kiri.feather@gmail.com>
+//           (c) 2008-2011 Moz (@syo68k)
+//           (c) 2008-2011 takeshik (@takeshik) <http://www.takeshik.org/>
+//           (c) 2010-2011 anis774 (@anis774) <http://d.hatena.ne.jp/anis774/>
+//           (c) 2010-2011 fantasticswallow (@f_swallow) <http://twitter.com/f_swallow>
+//           (c) 2011      Egtra (@egtra) <http://dev.activebasic.com/egtra/>
+// All rights reserved.
+//
+// This file is part of Tween.
+//
+// This program is free software; you can redistribute it and/or modify it
+// under the terms of the GNU General Public License as published by the Free
+// Software Foundation; either version 3 of the License, or (at your option)
+// any later version.
+//
+// This program is distributed in the hope that it will be useful, but
+// WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+// or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+// for more details.
+//
+// You should have received a copy of the GNU General Public License along
+// with this program. If not, see <http://www.gnu.org/licenses/>, or write to
+// the Free Software Foundation, Inc., 51 Franklin Street - Fifth Floor,
+// Boston, MA 02110-1301, USA.
+
+using System;
+
+namespace Tween
+{
+    public static class nicoms
+    {
+        private static string[] _nicovideo =
+        {
+            "www.nicovideo.jp/watch/",
+            "live.nicovideo.jp/watch/",
+            "live.nicovideo.jp/gate/",
+            "live.nicolive.jp/gate/",
+            "co.nicovideo.jp/community/",
+            "com.nicovideo.jp/community/",
+            "ch.nicovideo.jp/channel/",
+            "nicovideo.jp/watch/",
+            "seiga.nicovideo.jp/bbs/",
+            "www.niconicommons.jp/material/",
+            "niconicommons.jp/material/",
+            "news.nicovideo.jp/watch/",
+        };
+
+        public static string Shorten(string url)
+        {
+            //整形(http(s)://を削除)
+            if (url.Length > 7 && url.Length < 128 && url.StartsWith("http://", StringComparison.OrdinalIgnoreCase))
+            {
+                url = url.Substring(7);
+            }
+            else
+            {
+                return url;
+            }
+
+            foreach (var nv in _nicovideo)
+            {
+                if (url.StartsWith(nv)) return string.Format("{0}{1}", "http://nico.ms/", url.Substring(nv.Length));
+            }
+
+            var i = url.IndexOf("nicovideo.jp/user/", StringComparison.OrdinalIgnoreCase);
+            if (i == 0 || i == 4) return string.Format("{0}{1}", "http://nico.ms/", url.Substring(13 + i));
+
+            i = url.IndexOf("nicovideo.jp/mylist/", StringComparison.OrdinalIgnoreCase);
+            if (i == 0 || i == 4) return string.Format("{0}{1}", "http://nico.ms/", url.Substring(13 + i));
+
+            i = url.IndexOf("seiga.nicovideo.jp/watch/", StringComparison.OrdinalIgnoreCase);
+            if (i == 0) return string.Format("{0}{1}", "http://nico.ms/", url.Substring(25));
+
+            return "http://" + url;
+        }
+    }
+}