Microsoft Visual Studio Solution File, Format Version 11.00
# Visual Studio 2010
-Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "OpenTweenUp", "OpenTweenUp\OpenTweenUp.vbproj", "{EF3CD31B-6669-4932-A0E0-1EA44E4BCE89}"
-EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "OpenTween", "OpenTween\OpenTween.csproj", "{3D8995C7-BDF3-4273-9F9D-DDD902F6A101}"
EndProject
Global
SingleImage|x86 = SingleImage|x86
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
- {EF3CD31B-6669-4932-A0E0-1EA44E4BCE89}.CD_ROM|Any CPU.ActiveCfg = Release|x86
- {EF3CD31B-6669-4932-A0E0-1EA44E4BCE89}.CD_ROM|x64.ActiveCfg = Release|x86
- {EF3CD31B-6669-4932-A0E0-1EA44E4BCE89}.CD_ROM|x86.ActiveCfg = Release|x86
- {EF3CD31B-6669-4932-A0E0-1EA44E4BCE89}.CD_ROM|x86.Build.0 = Release|x86
- {EF3CD31B-6669-4932-A0E0-1EA44E4BCE89}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {EF3CD31B-6669-4932-A0E0-1EA44E4BCE89}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {EF3CD31B-6669-4932-A0E0-1EA44E4BCE89}.Debug|x64.ActiveCfg = Debug|x64
- {EF3CD31B-6669-4932-A0E0-1EA44E4BCE89}.Debug|x64.Build.0 = Debug|x64
- {EF3CD31B-6669-4932-A0E0-1EA44E4BCE89}.Debug|x86.ActiveCfg = Debug|x86
- {EF3CD31B-6669-4932-A0E0-1EA44E4BCE89}.Debug|x86.Build.0 = Debug|x86
- {EF3CD31B-6669-4932-A0E0-1EA44E4BCE89}.DVD-5|Any CPU.ActiveCfg = Debug|x86
- {EF3CD31B-6669-4932-A0E0-1EA44E4BCE89}.DVD-5|x64.ActiveCfg = Debug|x86
- {EF3CD31B-6669-4932-A0E0-1EA44E4BCE89}.DVD-5|x86.ActiveCfg = Debug|x86
- {EF3CD31B-6669-4932-A0E0-1EA44E4BCE89}.DVD-5|x86.Build.0 = Debug|x86
- {EF3CD31B-6669-4932-A0E0-1EA44E4BCE89}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {EF3CD31B-6669-4932-A0E0-1EA44E4BCE89}.Release|Any CPU.Build.0 = Release|Any CPU
- {EF3CD31B-6669-4932-A0E0-1EA44E4BCE89}.Release|x64.ActiveCfg = Release|x64
- {EF3CD31B-6669-4932-A0E0-1EA44E4BCE89}.Release|x64.Build.0 = Release|x64
- {EF3CD31B-6669-4932-A0E0-1EA44E4BCE89}.Release|x86.ActiveCfg = Release|x86
- {EF3CD31B-6669-4932-A0E0-1EA44E4BCE89}.Release|x86.Build.0 = Release|x86
- {EF3CD31B-6669-4932-A0E0-1EA44E4BCE89}.SingleImage|Any CPU.ActiveCfg = Release|x86
- {EF3CD31B-6669-4932-A0E0-1EA44E4BCE89}.SingleImage|x64.ActiveCfg = Release|x86
- {EF3CD31B-6669-4932-A0E0-1EA44E4BCE89}.SingleImage|x86.ActiveCfg = Release|x86
- {EF3CD31B-6669-4932-A0E0-1EA44E4BCE89}.SingleImage|x86.Build.0 = Release|x86
{3D8995C7-BDF3-4273-9F9D-DDD902F6A101}.CD_ROM|Any CPU.ActiveCfg = Release|Any CPU
{3D8995C7-BDF3-4273-9F9D-DDD902F6A101}.CD_ROM|x64.ActiveCfg = Release|Any CPU
{3D8995C7-BDF3-4273-9F9D-DDD902F6A101}.CD_ROM|x86.ActiveCfg = Release|Any CPU
+++ /dev/null
-// OpenTween - Client of Twitter
-// Copyright (c) 2007-2010 kiri_feather (@kiri_feather) <kiri.feather@gmail.com>
-// (c) 2008-2010 Moz (@syo68k) <http://iddy.jp/profile/moz/>
-// (c) 2008-2010 takeshik (@takeshik) <http://www.takeshik.org/>
-// (c) 2011 Egtra (@egtra) <http://dev.activebasic.com/egtra/>
-// All rights reserved.
-//
-// This file is part of OpenTween.
-//
-// 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;
-using System.Windows.Forms;
-
-namespace OpenTween
-{
- public class DoubleClickCopyCanceller : NativeWindow, IDisposable
- {
- const int WM_GETTEXTLENGTH = 0xE;
- const int WM_GETTEXT = 0xD;
- const int WM_LBUTTONDBLCLK = 0x203;
- bool _doubleClick = false;
-
- public DoubleClickCopyCanceller(Control control)
- {
- this.AssignHandle(control.Handle);
- }
-
- protected override void WndProc(ref Message m)
- {
- if (m.Msg == WM_LBUTTONDBLCLK)
- {
- _doubleClick = true;
- }
- if (_doubleClick)
- {
- if (m.Msg == WM_GETTEXTLENGTH)
- {
- _doubleClick = false;
- m.Result = IntPtr.Zero;
- return;
- }
- }
- base.WndProc(ref m);
- }
-
- public void Dispose()
- {
- Dispose(true);
- GC.SuppressFinalize(this);
- }
-
- protected virtual void Dispose(bool disposing)
- {
- if (disposing)
- {
- this.ReleaseHandle();
- }
- }
- }
-}
+++ /dev/null
-' OpenTween - Client of Twitter
-' Copyright (c) 2011 kiri_feather (@kiri_feather) <kiri.feather@gmail.com>
-' (c) 2011 fantasticswallow (@f_swallow) <http://twitter.com/f_swallow>
-' All rights reserved.
-'
-' This file is part of OpenTween.
-'
-' 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.
-
-Imports System.Threading.Tasks
-Imports System.Net
-
-Public Class FavoriteQueue
- Implements IList(Of Long)
-
- 'Private Shared _instance As New FavoriteQueue
- 'Public Shared ReadOnly Property GetInstance As FavoriteQueue
- ' Get
- ' Return _instance
- ' End Get
- 'End Property
-
- Private tw As Twitter
- Private FavoriteCache As New List(Of Long)
-
- Public Sub AddRange(ByVal stsIds As IEnumerable(Of Long))
- FavoriteCache.AddRange(stsIds)
- End Sub
-
- 'Public Sub FavoriteCacheAdd(ByVal statusId As Long, ByVal res As HttpStatusCode, Optional ByRef isMsg As Boolean = True)
- ' 'If Not SettingInfo.Instance.IsUseFavoriteQueue Then Exit Sub
- ' Select Case res
- ' Case HttpStatusCode.BadGateway, HttpStatusCode.BadRequest, HttpStatusCode.ServiceUnavailable, HttpStatusCode.InternalServerError, HttpStatusCode.RequestTimeout
- ' isMsg = False
- ' FavoriteCache.Add(statusId)
- ' End Select
- 'End Sub
-
- Public Sub FavoriteCacheStart()
- If Not FavoriteCache.Count = 0 Then
- Dim _cacheList As New List(Of Long)(FavoriteCache)
- Me.Clear()
- Parallel.ForEach(Of Long)(_cacheList, New Action(Of Long)(Sub(stsId As Long)
- tw.PostFavAdd(stsId)
- End Sub))
- End If
- End Sub
-
- Public Sub Add(ByVal item As Long) Implements System.Collections.Generic.ICollection(Of Long).Add
- If Not Me.Contains(item) Then
- FavoriteCache.Add(item)
- End If
- End Sub
-
- Public Sub Clear() Implements System.Collections.Generic.ICollection(Of Long).Clear
- FavoriteCache.Clear()
- FavoriteCache.TrimExcess()
- End Sub
-
- Public Function Contains(ByVal item As Long) As Boolean Implements System.Collections.Generic.ICollection(Of Long).Contains
- FavoriteCache.Contains(item)
- End Function
-
- Public Sub CopyTo(ByVal array() As Long, ByVal arrayIndex As Integer) Implements System.Collections.Generic.ICollection(Of Long).CopyTo
- FavoriteCache.CopyTo(array, arrayIndex)
- End Sub
-
- Public ReadOnly Property Count As Integer Implements System.Collections.Generic.ICollection(Of Long).Count
- Get
- Return FavoriteCache.Count
- End Get
- End Property
-
- Public ReadOnly Property IsReadOnly As Boolean Implements System.Collections.Generic.ICollection(Of Long).IsReadOnly
- Get
- Return False
- End Get
- End Property
-
- Public Function Remove(ByVal item As Long) As Boolean Implements System.Collections.Generic.ICollection(Of Long).Remove
- Return FavoriteCache.Remove(item)
- End Function
-
- Public Function GetEnumerator() As System.Collections.Generic.IEnumerator(Of Long) Implements System.Collections.Generic.IEnumerable(Of Long).GetEnumerator
- Return FavoriteCache.GetEnumerator()
- End Function
- Public Function GetEnumerator1() As System.Collections.IEnumerator Implements System.Collections.IEnumerable.GetEnumerator
- Return Me.GetEnumerator
- End Function
-
- Public Function IndexOf(ByVal item As Long) As Integer Implements System.Collections.Generic.IList(Of Long).IndexOf
- Return FavoriteCache.IndexOf(item)
- End Function
-
- Public Sub Insert(ByVal index As Integer, ByVal item As Long) Implements System.Collections.Generic.IList(Of Long).Insert
- FavoriteCache.Insert(index, item)
- End Sub
-
- Default Public Property Item(ByVal index As Integer) As Long Implements System.Collections.Generic.IList(Of Long).Item
- Get
- Return FavoriteCache(index)
- End Get
- Set(ByVal value As Long)
- FavoriteCache(index) = value
- End Set
- End Property
-
- Public Sub RemoveAt(ByVal index As Integer) Implements System.Collections.Generic.IList(Of Long).RemoveAt
- FavoriteCache.RemoveAt(index)
- End Sub
-
- Public Sub New(ByVal twitter As Twitter)
- Me.tw = twitter
- End Sub
-End Class
+++ /dev/null
-// OpenTween - 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 OpenTween.
-//
-// 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;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using System.Runtime.Serialization;
-using System.Net;
-using System.Runtime.Serialization.Json;
-using System.Web;
-
-namespace OpenTween
-{
- public class Google
- {
-#region "Translation"
- // http://code.google.com/intl/ja/apis/ajaxlanguage/documentation/#fonje
- // デベロッパー ガイド - Google AJAX Language API - Google Code
-
- private const string TranslateEndPoint = "http://ajax.googleapis.com/ajax/services/language/translate";
- private const string LanguageDetectEndPoint = "https://ajax.googleapis.com/ajax/services/language/detect";
-
-#region "言語テーブル定義"
- private static List<string> LanguageTable = new List<string>
- {
- "af",
- "sq",
- "am",
- "ar",
- "hy",
- "az",
- "eu",
- "be",
- "bn",
- "bh",
- "br",
- "bg",
- "my",
- "ca",
- "chr",
- "zh",
- "zh-CN",
- "zh-TW",
- "co",
- "hr",
- "cs",
- "da",
- "dv",
- "nl",
- "en",
- "eo",
- "et",
- "fo",
- "tl",
- "fi",
- "fr",
- "fy",
- "gl",
- "ka",
- "de",
- "el",
- "gu",
- "ht",
- "iw",
- "hi",
- "hu",
- "is",
- "id",
- "iu",
- "ga",
- "it",
- "ja",
- "jw",
- "kn",
- "kk",
- "km",
- "ko",
- "ku",
- "ky",
- "lo",
- "la",
- "lv",
- "lt",
- "lb",
- "mk",
- "ms",
- "ml",
- "mt",
- "mi",
- "mr",
- "mn",
- "ne",
- "no",
- "oc",
- "or",
- "ps",
- "fa",
- "pl",
- "pt",
- "pt-PT",
- "pa",
- "qu",
- "ro",
- "ru",
- "sa",
- "gd",
- "sr",
- "sd",
- "si",
- "sk",
- "sl",
- "es",
- "su",
- "sw",
- "sv",
- "syr",
- "tg",
- "ta",
- "tt",
- "te",
- "th",
- "bo",
- "to",
- "tr",
- "uk",
- "ur",
- "uz",
- "ug",
- "vi",
- "cy",
- "yi",
- "yo",
- };
-#endregion
-
- [DataContract]
- public class TranslateResponseData
- {
- [DataMember(Name = "translatedText")] public string TranslatedText;
- }
-
-
- [DataContract]
- private class TranslateResponse
- {
- [DataMember(Name = "responseData")] public TranslateResponseData ResponseData = null;
- [DataMember(Name = "responseDetails")] public string ResponseDetails = null;
- [DataMember(Name = "responseStatus")] public HttpStatusCode ResponseStatus = 0;
- }
-
-
- [DataContract]
- public class LanguageDetectResponseData
- {
- [DataMember(Name = "language")] public string Language;
- [DataMember(Name = "isReliable")] public bool IsReliable;
- [DataMember(Name = "confidence")] public double Confidence;
- }
-
- [DataContract]
- private class LanguageDetectResponse
- {
- [DataMember(Name = "responseData")] public LanguageDetectResponseData ResponseData = null;
- [DataMember(Name = "responseDetails")] public string ResponseDetails = null;
- [DataMember(Name = "responseStatus")] public HttpStatusCode ResponseStatus = 0;
- }
-
- public bool Translate(string srclng, string dstlng, string source, ref string destination, ref string ErrMsg)
- {
- var http = new HttpVarious();
- var apiurl = TranslateEndPoint;
- var headers = new Dictionary<string, string>();
- headers.Add("v", "1.0");
-
- ErrMsg = "";
- if (string.IsNullOrEmpty(srclng) || string.IsNullOrEmpty(dstlng))
- {
- return false;
- }
- headers.Add("User-Agent", MyCommon.GetUserAgentString());
- headers.Add("langpair", srclng + "|" + dstlng);
-
- headers.Add("q", source);
-
- var content = "";
- if (http.GetData(apiurl, headers, out content))
- {
- var serializer = new DataContractJsonSerializer(typeof(TranslateResponse));
- TranslateResponse res;
-
- try
- {
- res = MyCommon.CreateDataFromJson<TranslateResponse>(content);
- }
- catch(Exception)
- {
- ErrMsg = "Err:Invalid JSON";
- return false;
- }
-
- if (res.ResponseData == null)
- {
- ErrMsg = "Err:" + res.ResponseDetails;
- return false;
- }
- var _body = res.ResponseData.TranslatedText;
- var buf = HttpUtility.UrlDecode(_body);
-
- destination = string.Copy(buf);
- return true;
- }
- return false;
- }
-
- public string LanguageDetect(string source)
- {
- var http = new HttpVarious();
- var apiurl = LanguageDetectEndPoint;
- var headers = new Dictionary<string, string>();
- headers.Add("User-Agent", MyCommon.GetUserAgentString());
- headers.Add("v", "1.0");
- headers.Add("q", source);
- var content = "";
- if (http.GetData(apiurl, headers, out content))
- {
- var serializer = new DataContractJsonSerializer(typeof(LanguageDetectResponse));
- try
- {
- var res = MyCommon.CreateDataFromJson<LanguageDetectResponse>(content);
- return res.ResponseData.Language;
- }
- catch(Exception)
- {
- return "";
- }
- }
- return "";
- }
-
- public string GetLanguageEnumFromIndex(int index)
- {
- return LanguageTable[index];
- }
-
- public int GetIndexFromLanguageEnum(string lang)
- {
- return LanguageTable.IndexOf(lang);
- }
-#endregion
-
-#region "UrlShortener"
- // http://code.google.com/intl/ja/apis/urlshortener/v1/getting_started.html
- // Google URL Shortener API
-
- [DataContract]
- private class UrlShortenerParameter
- {
- [DataMember(Name = "longUrl")] public string LongUrl = null;
- }
-
- [DataContract]
- private class UrlShortenerResponse
- {
-
- }
-
- public string Shorten(string source)
- {
- var http = new HttpVarious();
- var apiurl = "https://www.googleapis.com/urlshortener/v1/url";
- var headers = new Dictionary<string, string>();
- headers.Add("User-Agent", MyCommon.GetUserAgentString());
- headers.Add("Content-Type", "application/json");
-
- http.PostData(apiurl, headers);
- return "";
- }
-#endregion
- }
-}
+++ /dev/null
-namespace OpenTween
-{
- partial class MessageForm
- {
- /// <summary>
- /// Required designer variable.
- /// </summary>
- private System.ComponentModel.IContainer components = null;
-
- /// <summary>
- /// Clean up any resources being used.
- /// </summary>
- /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
- protected override void Dispose(bool disposing)
- {
- if (disposing && (components != null))
- {
- components.Dispose();
- }
- base.Dispose(disposing);
- }
-
- #region Windows Form Designer generated code
-
- /// <summary>
- /// Required method for Designer support - do not modify
- /// the contents of this method with the code editor.
- /// </summary>
- private void InitializeComponent()
- {
- this.Label1 = new System.Windows.Forms.Label();
- this.SuspendLayout();
- //
- // Label1
- //
- this.Label1.AutoSize = true;
- this.Label1.Location = new System.Drawing.Point(123, 125);
- this.Label1.Name = "Label1";
- this.Label1.Size = new System.Drawing.Size(38, 12);
- this.Label1.TabIndex = 1;
- this.Label1.Text = "Label1";
- //
- // MessageForm
- //
- this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F);
- this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
- this.AutoSize = true;
- this.ClientSize = new System.Drawing.Size(284, 262);
- this.Controls.Add(this.Label1);
- this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog;
- this.MaximizeBox = false;
- this.MinimizeBox = false;
- this.Name = "MessageForm";
- this.ShowIcon = false;
- this.ShowInTaskbar = false;
- this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent;
- this.Text = "MessageForm";
- this.ResumeLayout(false);
- this.PerformLayout();
-
- }
-
- #endregion
-
- internal System.Windows.Forms.Label Label1;
- }
-}
\ No newline at end of file
+++ /dev/null
-// OpenTween - Client of Twitter
-// Copyright (c) 2011 Moz (@syo68k)
-// (c) 2012 tigree4th <crerish@gmail.com>
-// All rights reserved.
-//
-// This file is part of OpenTween.
-//
-// 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;
-using System.Collections.Generic;
-using System.ComponentModel;
-using System.Data;
-using System.Drawing;
-using System.Linq;
-using System.Text;
-using System.Windows.Forms;
-
-namespace OpenTween
-{
- public partial class MessageForm : Form
- {
- public MessageForm()
- {
- InitializeComponent();
- }
-
- public System.Windows.Forms.DialogResult ShowDialog(string message) {
- this.Label1.Text = message;
-
- // ラベルコントロールをセンタリング
- this.Label1.Left = (this.ClientSize.Width - this.Label1.Size.Width) / 2;
-
- this.Label1.Refresh();
- this.Label1.Visible = true;
- return base.ShowDialog();
- }
- }
-}
+++ /dev/null
-<?xml version="1.0" encoding="utf-8"?>
-<root>
- <!--
- Microsoft ResX Schema
-
- Version 2.0
-
- The primary goals of this format is to allow a simple XML format
- that is mostly human readable. The generation and parsing of the
- various data types are done through the TypeConverter classes
- associated with the data types.
-
- Example:
-
- ... ado.net/XML headers & schema ...
- <resheader name="resmimetype">text/microsoft-resx</resheader>
- <resheader name="version">2.0</resheader>
- <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
- <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
- <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
- <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
- <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
- <value>[base64 mime encoded serialized .NET Framework object]</value>
- </data>
- <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
- <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
- <comment>This is a comment</comment>
- </data>
-
- There are any number of "resheader" rows that contain simple
- name/value pairs.
-
- Each data row contains a name, and value. The row also contains a
- type or mimetype. Type corresponds to a .NET class that support
- text/value conversion through the TypeConverter architecture.
- Classes that don't support this are serialized and stored with the
- mimetype set.
-
- The mimetype is used for serialized objects, and tells the
- ResXResourceReader how to depersist the object. This is currently not
- extensible. For a given mimetype the value must be set accordingly:
-
- Note - application/x-microsoft.net.object.binary.base64 is the format
- that the ResXResourceWriter will generate, however the reader can
- read any of the formats listed below.
-
- mimetype: application/x-microsoft.net.object.binary.base64
- value : The object must be serialized with
- : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
- : and then encoded with base64 encoding.
-
- mimetype: application/x-microsoft.net.object.soap.base64
- value : The object must be serialized with
- : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
- : and then encoded with base64 encoding.
-
- mimetype: application/x-microsoft.net.object.bytearray.base64
- value : The object must be serialized into a byte array
- : using a System.ComponentModel.TypeConverter
- : and then encoded with base64 encoding.
- -->
- <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
- <xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
- <xsd:element name="root" msdata:IsDataSet="true">
- <xsd:complexType>
- <xsd:choice maxOccurs="unbounded">
- <xsd:element name="metadata">
- <xsd:complexType>
- <xsd:sequence>
- <xsd:element name="value" type="xsd:string" minOccurs="0" />
- </xsd:sequence>
- <xsd:attribute name="name" use="required" type="xsd:string" />
- <xsd:attribute name="type" type="xsd:string" />
- <xsd:attribute name="mimetype" type="xsd:string" />
- <xsd:attribute ref="xml:space" />
- </xsd:complexType>
- </xsd:element>
- <xsd:element name="assembly">
- <xsd:complexType>
- <xsd:attribute name="alias" type="xsd:string" />
- <xsd:attribute name="name" type="xsd:string" />
- </xsd:complexType>
- </xsd:element>
- <xsd:element name="data">
- <xsd:complexType>
- <xsd:sequence>
- <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
- <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
- </xsd:sequence>
- <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
- <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
- <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
- <xsd:attribute ref="xml:space" />
- </xsd:complexType>
- </xsd:element>
- <xsd:element name="resheader">
- <xsd:complexType>
- <xsd:sequence>
- <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
- </xsd:sequence>
- <xsd:attribute name="name" type="xsd:string" use="required" />
- </xsd:complexType>
- </xsd:element>
- </xsd:choice>
- </xsd:complexType>
- </xsd:element>
- </xsd:schema>
- <resheader name="resmimetype">
- <value>text/microsoft-resx</value>
- </resheader>
- <resheader name="version">
- <value>2.0</value>
- </resheader>
- <resheader name="reader">
- <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
- </resheader>
- <resheader name="writer">
- <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
- </resheader>
-</root>
\ No newline at end of file
<Compile Include="UpdateDialog.Designer.cs">
<DependentUpon>UpdateDialog.cs</DependentUpon>
</Compile>
- <Compile Include="DoubleClickCopyCanceller.cs" />
<Compile Include="Foursquare.cs" />
- <Compile Include="Google.cs" />
<Compile Include="FormInfo.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="Thumbnail\MapThumbGoogle.cs" />
<Compile Include="Thumbnail\MapThumb.cs" />
<Compile Include="Thumbnail\MapThumbOSM.cs" />
- <Compile Include="MessageForm.cs">
- <SubType>Form</SubType>
- </Compile>
- <Compile Include="MessageForm.Designer.cs">
- <DependentUpon>MessageForm.cs</DependentUpon>
- </Compile>
<Compile Include="ListElement.cs" />
<Compile Include="ImageDictionary.cs" />
<Compile Include="ImageListViewItem.cs" />
<Compile Include="Setting\SettingAtIdList.cs" />
<Compile Include="Setting\SettingBase.cs" />
<Compile Include="Setting\SettingCommon.cs" />
- <Compile Include="Setting\SettingFollower.cs" />
<Compile Include="Setting\SettingTabs.cs" />
<Compile Include="Setting\SettingLocal.cs" />
- <Compile Include="ShieldIcon.cs" />
<Compile Include="ShortUrl.cs" />
<Compile Include="TabsDialog.cs">
<SubType>Form</SubType>
<EmbeddedResource Include="InputTabName.zh-CHS.resx">
<DependentUpon>InputTabName.cs</DependentUpon>
</EmbeddedResource>
- <EmbeddedResource Include="MessageForm.resx">
- <DependentUpon>MessageForm.cs</DependentUpon>
- </EmbeddedResource>
<EmbeddedResource Include="MyLists.en.resx">
<DependentUpon>MyLists.cs</DependentUpon>
</EmbeddedResource>
<Link>LICENSE.LGPL-3</Link>
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
- <None Include="app.config" />
</ItemGroup>
<ItemGroup>
<Content Include="Resources\3b.ico" />
<Content Include="Resources\5y.ico" />
<Content Include="Resources\6b.ico" />
<Content Include="Resources\6g.ico" />
- <Content Include="Resources\ads.txt" />
<Content Include="Resources\ChangeLog.txt" />
<Content Include="Resources\Description.txt" />
<Content Include="Resources\InitialImage.png" />
<Content Include="Resources\re2.ico" />
<Content Include="Resources\re3.ico" />
<Content Include="Resources\re4.ico" />
- <Content Include="tips.txt" />
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
+++ /dev/null
-' OpenTween - 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 OpenTween.
-'
-' 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.
-
-Imports System.IO
-Imports System.Net
-Imports System.Xml
-
-Public Class PictureService
- Private tw As Twitter
-
- Public Function Upload(ByRef filePath As String, ByRef message As String, ByVal service As String) As String
- Dim file As FileInfo
- Try
- file = New FileInfo(filePath)
- Catch ex As NotSupportedException
- Return "Err:" + ex.Message
- End Try
- If Not file.Exists Then Return "Err:File isn't exists."
- Dim st As AppendSettingDialog = AppendSettingDialog.Instance
- Dim ret As String = ""
- Dim upResult As Boolean = False
- Select Case service
- Case "TwitPic"
- ret = UpToTwitPic(file, message, upResult)
- Case "img.ly"
- ret = UpToimgly(file, message, upResult)
- 'Case "TwitVideo"
- ' ret = UpToTwitVideo(file, message, upResult)
- Case "yfrog"
- ret = UpToyfrog(file, message, upResult)
- Case "Plixi"
- ret = UpToPlixi(file, message, upResult)
- End Select
- If upResult Then filePath = ""
- Return ret
- End Function
-
- Public Function IsValidExtension(ByVal ext As String, ByVal service As String) As Boolean
- Dim ret As Boolean = False
- Select Case service
- Case "TwitPic"
- ret = (New TwitPic(tw.AccessToken, tw.AccessTokenSecret)).CheckValidExtension(ext)
- Case "img.ly"
- ret = (New imgly(tw.AccessToken, tw.AccessTokenSecret)).CheckValidExtension(ext)
- 'Case "TwitVideo"
- ' ret = (New TwitVideo).CheckValidExtension(ext)
- Case "yfrog"
- ret = (New yfrog(tw.AccessToken, tw.AccessTokenSecret)).CheckValidExtension(ext)
- Case "Plixi"
- ret = (New Plixi(tw.AccessToken, tw.AccessTokenSecret)).CheckValidExtension(ext)
- End Select
- Return ret
- End Function
-
- Public Function GetFileOpenDialogFilter(ByVal service As String) As String
- Dim ret As String = ""
- Select Case service
- Case "TwitPic"
- ret = (New TwitPic(tw.AccessToken, tw.AccessTokenSecret)).GetFileOpenDialogFilter
- Case "img.ly"
- ret = (New imgly(tw.AccessToken, tw.AccessTokenSecret)).GetFileOpenDialogFilter
- 'Case "TwitVideo"
- ' ret = (New TwitVideo).GetFileOpenDialogFilter
- Case "yfrog"
- ret = (New yfrog(tw.AccessToken, tw.AccessTokenSecret)).GetFileOpenDialogFilter
- Case "Plixi"
- ret = (New Plixi(tw.AccessToken, tw.AccessTokenSecret)).GetFileOpenDialogFilter
- End Select
- Return ret
- End Function
-
- Public Function GetFileType(ByVal ext As String, ByVal service As String) As UploadFileType
- Dim ret As UploadFileType = UploadFileType.Invalid
- Select Case service
- Case "TwitPic"
- ret = (New TwitPic(tw.AccessToken, tw.AccessTokenSecret)).GetFileType(ext)
- Case "img.ly"
- ret = (New imgly(tw.AccessToken, tw.AccessTokenSecret)).GetFileType(ext)
- 'Case "TwitVideo"
- ' ret = (New TwitVideo).GetFileType(ext)
- Case "yfrog"
- ret = (New yfrog(tw.AccessToken, tw.AccessTokenSecret)).GetFileType(ext)
- Case "Plixi"
- ret = (New Plixi(tw.AccessToken, tw.AccessTokenSecret)).GetFileType(ext)
- End Select
- Return ret
- End Function
-
- Public Function IsSupportedFileType(ByVal type As UploadFileType, ByVal service As String) As Boolean
- Dim ret As Boolean = False
- Select Case service
- Case "TwitPic"
- ret = (New TwitPic(tw.AccessToken, tw.AccessTokenSecret)).IsSupportedFileType(type)
- Case "img.ly"
- ret = (New imgly(tw.AccessToken, tw.AccessTokenSecret)).IsSupportedFileType(type)
- 'Case "TwitVideo"
- ' ret = (New TwitVideo).IsSupportedFileType(type)
- Case "yfrog"
- ret = (New yfrog(tw.AccessToken, tw.AccessTokenSecret)).IsSupportedFileType(type)
- Case "Plixi"
- ret = (New Plixi(tw.AccessToken, tw.AccessTokenSecret)).IsSupportedFileType(type)
- End Select
- Return ret
- End Function
-
- Public Function GetMaxFileSize(ByVal ext As String, ByVal service As String) As Long
- Dim ret As Long = -1
- Select Case service
- Case "TwitPic"
- ret = (New TwitPic(tw.AccessToken, tw.AccessTokenSecret)).GetMaxFileSize(ext)
- Case "img.ly"
- ret = (New imgly(tw.AccessToken, tw.AccessTokenSecret)).GetMaxFileSize(ext)
- 'Case "TwitVideo"
- ' ret = (New TwitVideo).GetMaxFileSize(ext)
- Case "yfrog"
- ret = (New yfrog(tw.AccessToken, tw.AccessTokenSecret)).GetMaxFileSize(ext)
- Case "Plixi"
- ret = (New TwitPic(tw.AccessToken, tw.AccessTokenSecret)).GetMaxFileSize(ext)
- End Select
- Return ret
- End Function
-
- Private Function UpToTwitPic(ByVal file As FileInfo, ByRef message As String, ByRef resultUpload As Boolean) As String
- Dim content As String = ""
- Dim ret As HttpStatusCode
- 'TwitPicへの投稿
- Dim svc As New TwitPic(tw.AccessToken, tw.AccessTokenSecret)
- Try
- ret = svc.Upload(file, message, content)
- Catch ex As Exception
- Return "Err:" + ex.Message
- End Try
- Dim url As String = ""
- If ret = HttpStatusCode.OK Then
- Dim xd As XmlDocument = New XmlDocument()
- Try
- xd.LoadXml(content)
- 'URLの取得
- url = xd.SelectSingleNode("/image/url").InnerText
- Catch ex As XmlException
- Return "Err:" + ex.Message
- End Try
- Else
- Return "Err:" + ret.ToString
- End If
- 'アップロードまでは成功
- resultUpload = True
- 'Twitterへの投稿
- '投稿メッセージの再構成
- If message.Length + url.Length + 1 > 140 Then
- message = message.Substring(0, 140 - url.Length - 1) + " " + url
- Else
- message += " " + url
- End If
- Return tw.PostStatus(message, 0)
- End Function
-
- Private Function UpToyfrog(ByVal file As FileInfo, ByRef message As String, ByRef resultUpload As Boolean) As String
- Dim content As String = ""
- Dim ret As HttpStatusCode
- 'yfrogへの投稿
- Dim svc As New yfrog(tw.AccessToken, tw.AccessTokenSecret)
- Try
- ret = svc.Upload(file, message, content)
- Catch ex As Exception
- Return "Err:" + ex.Message
- End Try
- Dim url As String = ""
- If ret = HttpStatusCode.OK Then
- Dim xd As XmlDocument = New XmlDocument()
- Try
- xd.LoadXml(content)
- 'URLの取得
- url = xd.SelectSingleNode("/rsp/mediaurl").InnerText
- Catch ex As XmlException
- Return "Err:" + ex.Message
- End Try
- Else
- Return "Err:" + ret.ToString
- End If
- 'アップロードまでは成功
- resultUpload = True
- 'Twitterへの投稿
- '投稿メッセージの再構成
- If message.Length + url.Length + 1 > 140 Then
- message = message.Substring(0, 140 - url.Length - 1) + " " + url
- Else
- message += " " + url
- End If
- Return tw.PostStatus(message, 0)
- End Function
-
- Private Function UpToimgly(ByVal file As FileInfo, ByRef message As String, ByRef resultUpload As Boolean) As String
- Dim content As String = ""
- Dim ret As HttpStatusCode
- 'img.lyへの投稿
- Dim svc As New imgly(tw.AccessToken, tw.AccessTokenSecret)
- Try
- ret = svc.Upload(file, message, content)
- Catch ex As Exception
- Return "Err:" + ex.Message
- End Try
- Dim url As String = ""
- If ret = HttpStatusCode.OK Then
- Dim xd As XmlDocument = New XmlDocument()
- Try
- xd.LoadXml(content)
- 'URLの取得
- url = xd.SelectSingleNode("/image/url").InnerText
- Catch ex As XmlException
- Return "Err:" + ex.Message
- End Try
- Else
- Return "Err:" + ret.ToString
- End If
- 'アップロードまでは成功
- resultUpload = True
- 'Twitterへの投稿
- '投稿メッセージの再構成
- If message.Length + url.Length + 1 > 140 Then
- message = message.Substring(0, 140 - url.Length - 1) + " " + url
- Else
- message += " " + url
- End If
- Return tw.PostStatus(message, 0)
- End Function
-
- Private Function UpToPlixi(ByVal file As FileInfo, ByRef message As String, ByRef resultUpload As Boolean) As String
- Dim content As String = ""
- Dim ret As HttpStatusCode
- 'Plixiへの投稿
- Dim svc As New Plixi(tw.AccessToken, tw.AccessTokenSecret)
- Try
- ret = svc.Upload(file, message, content)
- Catch ex As Exception
- Return "Err:" + ex.Message
- End Try
- Dim url As String = ""
- If ret = HttpStatusCode.Created Then
- Dim xd As XmlDocument = New XmlDocument()
- Try
- xd.LoadXml(content)
- 'MediaUrlの取得
- url = xd.ChildNodes().Item(0).ChildNodes(2).InnerText
- Catch ex As XmlException
- Return "Err:" + ex.Message
- End Try
- Else
- Return "Err:" + ret.ToString
- End If
- 'アップロードまでは成功
- resultUpload = True
- 'Twitterへの投稿
- '投稿メッセージの再構成
- If message.Length + url.Length + 1 > 140 Then
- message = message.Substring(0, 140 - url.Length - 1) + " " + url
- Else
- message += " " + url
- End If
- Return tw.PostStatus(message, 0)
- End Function
-
- 'Private Function UpToTwitVideo(ByVal file As FileInfo, ByRef message As String, ByRef resultUpload As Boolean) As String
- ' Dim content As String = ""
- ' Dim ret As HttpStatusCode
- ' 'TwitVideoへの投稿
- ' Dim svc As New TwitVideo
- ' Try
- ' ret = svc.Upload(file, message, "", tw.Username, tw.UserIdNo, content)
- ' Catch ex As Exception
- ' Return "Err:" + ex.Message
- ' End Try
- ' Dim url As String = ""
- ' If ret = HttpStatusCode.OK Then
- ' Dim xd As XmlDocument = New XmlDocument()
- ' Try
- ' xd.LoadXml(content)
- ' Dim rslt As String = xd.SelectSingleNode("/rsp/@status").Value
- ' If rslt = "ok" Then
- ' 'URLの取得
- ' url = xd.SelectSingleNode("/rsp/mediaurl").InnerText
- ' Else
- ' Return "Err:" + xd.SelectSingleNode("/rsp/err/@msg").Value
- ' End If
- ' Catch ex As XmlException
- ' Return "Err:" + ex.Message
- ' End Try
- ' Else
- ' Return "Err:" + ret.ToString
- ' End If
- ' 'アップロードまでは成功
- ' resultUpload = True
- ' 'Twitterへの投稿
- ' '投稿メッセージの再構成
- ' If message.Length + url.Length + 1 > 140 Then
- ' message = message.Substring(0, 140 - url.Length - 1) + " " + url
- ' Else
- ' message += " " + url
- ' End If
- ' Return tw.PostStatus(message, 0)
- 'End Function
-
- Public Sub New(ByVal twInstance As Twitter)
- tw = twInstance
- End Sub
-End Class
}
/// <summary>
- /// <html><head>
- ///<script type='text/javascript' src='http://partner.googleadservices.com/gampad/google_service.js'>
- ///</script>
- ///<script type='text/javascript'>
- ///GS_googleAddAdSenseService("ca-pub-6759700347268706");
- ///GS_googleEnableAllServices();
- ///</script>
- ///<script type='text/javascript'>
- ///GA_googleAddSlot("ca-pub-6759700347268706", "Tween_HomePage_728x90");
- ///</script>
- ///<script type='text/javascript'>
- ///GA_googleFetchAds();
- ///</script>
- ///<!-- <meta http-equiv="refresh" content="45"> -->
- ///</head>
- ///<body style="te [残りの文字列は切り詰められました]"; に類似しているローカライズされた文字列を検索します。
- /// </summary>
- internal static string ads {
- get {
- return ResourceManager.GetString("ads", resourceCulture);
- }
- }
-
- /// <summary>
/// REST API上限 : に類似しているローカライズされた文字列を検索します。
/// </summary>
internal static string ApiInfo1 {
<data name="RegistrationEmail2" xml:space="preserve">
<value>登録ありがとうございます。</value>
</data>
- <data name="ads" type="System.Resources.ResXFileRef, System.Windows.Forms">
- <value>..\Resources\ads.txt;System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;shift_jis</value>
- </data>
<data name="ApiInfo10" xml:space="preserve">
<value>画像投稿API残数:</value>
</data>
+++ /dev/null
-<html><head>
-<script type='text/javascript' src='http://partner.googleadservices.com/gampad/google_service.js'>
-</script>
-<script type='text/javascript'>
-GS_googleAddAdSenseService("ca-pub-6759700347268706");
-GS_googleEnableAllServices();
-</script>
-<script type='text/javascript'>
-GA_googleAddSlot("ca-pub-6759700347268706", "Tween_HomePage_728x90");
-</script>
-<script type='text/javascript'>
-GA_googleFetchAds();
-</script>
-<!-- <meta http-equiv="refresh" content="45"> -->
-</head>
-<body style="text-align:center; margin:0 auto;">
-<!-- Tween_HomePage_728x90 -->
-<div style="width: 720px; margin:0 auto; text-align:left;">
-<script type='text/javascript'>
-GA_googleFillSlot("Tween_HomePage_728x90");
-</script>
-</div>
-</body></html>
\ No newline at end of file
+++ /dev/null
-// OpenTween - 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 kim_upsilon (@kim_upsilon) <https://upsilo.net/~upsilon/>
-// All rights reserved.
-//
-// This file is part of OpenTween.
-//
-// 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;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-
-namespace OpenTween
-{
- [Serializable]
- public class SettingFollower : SettingBase<SettingFollower>
- {
-#region Settingクラス基本
- public static SettingFollower Load()
- {
- SettingFollower setting = LoadSettings();
- return setting;
- }
-
- public void Save()
- {
- SaveSettings(this);
- }
-
- public SettingFollower()
- {
- Follower = new List<string>();
- }
-
- public SettingFollower(List<string> follower)
- {
- this.Follower = follower;
- }
-#endregion
-
- public List<string> Follower;
-
- }
-}
+++ /dev/null
-// OpenTween - 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) 2011 kim_upsilon (@kim_upsilon) <https://upsilo.net/~upsilon/>
-// All rights reserved.
-//
-// This file is part of OpenTween.
-//
-// 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;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using System.Windows.Forms;
-using System.IO;
-
-namespace OpenTween
-{
- [Serializable]
- public class SettingTab : SettingBase<SettingTab>
- {
-#region Settingクラス基本
- public static SettingTab Load(string tabName)
- {
- SettingTab setting = LoadSettings(tabName);
- setting.Tab.TabName = tabName;
- return setting;
- }
-
- public void Save()
- {
- SaveSettings(this, this.Tab.TabName);
- }
-
- public SettingTab()
- {
- Tab = new TabClass();
- }
-
- public SettingTab(string TabName)
- {
- this.Tab = new TabClass();
- Tab.TabName = TabName;
- }
-#endregion
-
- public static void DeleteConfigFile()
- {
- foreach (FileInfo file in (new DirectoryInfo(Application.StartupPath + Path.DirectorySeparatorChar)).GetFiles("SettingTab*.xml"))
- {
- try
- {
- file.Delete();
- }
- catch (Exception)
- {
- //削除権限がない場合
- }
- }
- }
-
- public TabClass Tab;
- }
-}
+++ /dev/null
-// OpenTween - 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 OpenTween.
-//
-// 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;
-using System.Drawing;
-using System.Runtime.InteropServices;
-
-namespace OpenTween
-{
- public class ShieldIcon
- {
- [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode)]
- private struct SHSTOCKICONINFO
- {
- public int cbSize;
- public IntPtr hIcon;
- public int iSysImageIndex;
- public int iIcon;
- [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 260)]
- public string szPath;
- }
-
- [DllImport("shell32.dll")]
- private static extern int SHGetStockIconInfo(int siid, uint uFlags, ref SHSTOCKICONINFO psii); // Windows Vista, Windows Server 2008 以前には存在しない
-
- [DllImport("user32.dll")]
- private static extern bool DestroyIcon(IntPtr hIcon);
-
- const int SIID_SHIELD = 77;
- const uint SHGFI_ICON = 0x100;
- const uint SHGFI_SMALLICON = 0x1;
-
-
- private Image icondata = null;
- private SHSTOCKICONINFO sii;
-
-
- public ShieldIcon()
- {
- //NT6 kernelかどうか検査
- if (!MyCommon.IsNT6())
- {
- icondata = null;
- return;
- }
-
- try
- {
- sii = new SHSTOCKICONINFO();
- sii.cbSize = Marshal.SizeOf(sii);
- sii.hIcon = IntPtr.Zero;
-
- int ret;
- ret = SHGetStockIconInfo(SIID_SHIELD, SHGFI_ICON | SHGFI_SMALLICON, ref sii);
- if (ret != 0)
- {
- icondata = null;
- return;
- }
-
- icondata = Bitmap.FromHicon(sii.hIcon);
- }
- catch (Exception)
- {
- icondata = null;
- }
- }
-
- public void Dispose()
- {
- if (icondata != null)
- {
- icondata.Dispose();
- }
- }
-
- public Image Icon
- {
- get
- {
- //return icondata;
- //シールドアイコンのデータを返さないように あとでどうにかする
- return null;
- }
- }
- }
-}
private bool _waitLists = false;
private BackgroundWorker[] _bw = new BackgroundWorker[20];
private BackgroundWorker _bwFollower;
- private ShieldIcon shield = new ShieldIcon();
private InternetSecurityManager SecurityManager;
private ThumbnailGenerator Thumbnail;
if (_brsBackColorAtTo != null) _brsBackColorAtTo.Dispose();
if (_brsBackColorNone != null) _brsBackColorNone.Dispose();
if (_brsDeactiveSelection != null) _brsDeactiveSelection.Dispose();
- shield.Dispose();
//sf.Dispose();
sfTab.Dispose();
foreach (BackgroundWorker bw in _bw)
MyCommon.TwitterApiInfo.Changed += SetStatusLabelApiHandler;
Microsoft.Win32.SystemEvents.PowerModeChanged += SystemEvents_PowerModeChanged;
- VerUpMenuItem.Image = shield.Icon;
string[] cmdArgs = Environment.GetCommandLineArgs();
if (cmdArgs.Length != 0 && cmdArgs.Contains("/d")) MyCommon.TraceFlag = true;
+++ /dev/null
-<?xml version="1.0"?>
-<configuration>
- <configSections>
- <sectionGroup name="userSettings" type="System.Configuration.UserSettingsGroup, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
- <section name="OpenTween.TweenSettings" type="System.Configuration.ClientSettingsSection, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" allowExeDefinition="MachineToLocalUser" requirePermission="false"/>
- </sectionGroup>
- </configSections>
- <system.diagnostics>
- <sources>
- <!-- このセクションでは、My.Application.Log のログ構成を定義します。 -->
- <source name="DefaultSource" switchName="DefaultSwitch">
- <listeners>
- <add name="FileLog"/>
- <!-- アプリケーション イベント ログに書き込むには、以下のセクションのコメントを解除します -->
- <!--<add name="EventLog"/>-->
- </listeners>
- </source>
- </sources>
- <switches>
- <add name="DefaultSwitch" value="Information"/>
- </switches>
- <sharedListeners>
- <add name="FileLog" type="Microsoft.VisualBasic.Logging.FileLogTraceListener, Microsoft.VisualBasic, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" initializeData="FileLogWriter"/>
- <!-- アプリケーション イベント ログに書き込むには、以下のセクションのコメントを解除して、APPLICATION_NAME をアプリケーション名に置き換えます -->
- <!--<add name="EventLog" type="System.Diagnostics.EventLogTraceListener" initializeData="APPLICATION_NAME"/> -->
- </sharedListeners>
- </system.diagnostics>
-<startup><supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/></startup></configuration>
+++ /dev/null
-【ご存じですか】フォロー状況が更新されたとき、または全員がフォロー済み表示の際は、「その他の機能」>「片思いユーザーリストの取得」をお試しください。
-【ご存じですか】タイトルバーにフォロー数、フォロワー数、ツイート数を表示させることができます 設定ダイアログの表示タブのタイトルバーの項目から変更できます。
-【ご存じですか】返信元の発言はCtrl+Iで見ることができます。また、 [ ] の各キーで返信元を次々に追いかけたり戻ったりすることができます。
-【ご存じですか】返信やDMの取得が遅いですか?API利用可能数の範囲で更新間隔を調整しましょう。設定画面からできます。
-【ご存じですか】パソコンの時刻がずれていませんか?ずれているとTwitterクライアントの認証が通らないだけでなくいろいろな不具合が起こります。定期的に合わせましょう。
-【ご存じですか】ツイートを複数行表示したい場合は、設定からアイコンサイズを48x48、または48x48 2columnにしてください。
-【ご存じですか】タスクトレイのアイコンが赤いときは、ほとんどの場合でTwitterの調子が悪いときです。
-【ご存じですか】入力した文章の履歴はCtrl+↑↓で呼び出せます。
-【ご存じですか】Direct,あるいはReplyタブのみを読み込みする場合は、そのタブを選択した状態で更新、あるいはF6(Reply),F7(DM)のキーで更新できます。
-【ご存じですか】aまたはsキーでタブを左右に切り替えできます。
-【ご存じですか】Spaceキーで未読発言にジャンプします。
-【ご存じですか】TwitterのAPIは1時間あたりに呼び出せる回数が決まっています。「API Limit.」表示が出た場合は更新間隔を適切に見直しましょう。
-【ご存じですか】サウンドによる通知、バルーンによる通知はタブごとに設定可能です。DirectとReplyでは音を鳴らし、振り分けタブでバルーンを出し、Recentでは通知しないというようなこともできます。
-【ご存じですか】フッタを設定しているときにSHIFTキーを押しながら投稿すると、一時的にフッタを外して投稿できます。
-【ご存じですか】Listsの読み込みでもAPIを使用します。Listsタブの作りすぎにご注意を。
-【ご存じですか】Tweenに画像をドラッグ&ドロップすることで画像投稿サービスと連携して画像投稿ができます。
-【ご存じですか】フォローしていない人からの@はTwitterの仕様によりReply読み込みでしか読めません。Mentions取得間隔を設定から調整してみましょう。
-【ご存じですか】タブでの振り分けを活用しましょう。キーワードで振り分けたり、IDで振り分けたり、発言しているクライアント名称で振り分けることも可能です。
-【ご存じですか】Replyタブにも振り分けルールや除外ルールを設定可能です。うまく活用しましょう。
-【ご存じですか】振り分けの条件には正規表現が使えます。柔軟な指定が可能です。
-【ご存じですか】Ctrl+Lで入力欄にあるURLを短縮します。また、設定により投稿時に自動で短縮することも可能です。
-【ご存じですか】発言詳細のユーザーアイコンをダブルクリックすると、そのユーザーのページを開きます。また、アイコンを右クリックすることでメニューが出ます。
-【ご存じですか】見たくない発言がありましたか?そんなときは新着通知と未読管理がオフのゴミ箱的なタブを用意して、振り分けルールでそのタブに発言を「移動」させることですっきりします。
-【ご存じですか】Twitterはよく調子が悪くなります。そんなときは慌てたりイライラしたりせずに不具合が落ち着くのを待ちましょう。
-【ご存じですか】投稿が並ぶ順番はリストの上のカラム部分をクリックすることで変えられます。
-【ご存じですか】リストで←→でその人の発言、@などの関連した発言が追えます。またh、lキーでも同様の操作です。
-【ご存じですか】ブラウザなどから、選択文字列やURLをTweenのウインドウへドラッグ&ドロップすると、選択文字列やURLを入力欄へ入力できます。
-【ご存じですか】URLを圧縮する際にURLを正しく認識できない場合は、いったん圧縮を元に戻し、URLの文字列を選択してから圧縮すると、選択した文字列をURLであるものとして圧縮します。
-【ご存じですか】TweenでF1キーを押すと使い方の説明などが書かれたWikiページが表示されます。
-【ご存じですか】PublicSearchタブの入力欄にオプションを指定することで検索結果をカスタマイズできます。-キーワード で検索結果からキーワードを除外などができます。詳しくはこちら http://is.gd/gQ0ah
-【ご存じですか】その他機能メニューの「この発言のretweet回数を確認」で、発言が公式RTされた回数を確認できます。
-【ご存じですか】サウンドによる通知を設定したい場合は、タブの未読管理、ファイルメニューのサウンド再生を有効にしておき、Tween.exeと同じ場所にWAVファイルを置きます。タブメニューから先ほど置いたファイルを選べば完了です。
-【ご存じですか】任意のタイミングで現在のタブの更新を行う場合は、F5,R,操作メニューの「更新」,右クリックメニューの「更新」のいずれかの操作で行えます。
-【ご存じですか】Ctrl+Eで現在選択している発言に含まれているURLを開くことができます。
-【ご存じですか】Alt+←→で、現在選択している発言と同じ発言のある左右のタブへ移動することができます。
-【ご存じですか】SHIFT+Gで現在のタブの最新発言へ移動します。
-【ご存じですか】F6キーでReplyタブを、F7キーでDMタブを更新できます。
-【ご存じですか】タスクトレイアイコンにマウスカーソルを置くと、現在の全未読数と@未読数(ReplyタブとDMタブの未読の合計数)が表示されます。