using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.IO; using TweetSharp; using System.Xml.Serialization; using System.Xml; using TweetSharp.Model; using TweetSharp.Twitter.Service; namespace EchoChamber.Library { public static class EchoChamberHelper { public static int ImportFile(string inputFile, string outputFile) { Indexer indexer; if (File.Exists(outputFile)) { indexer = Indexer.Load(outputFile); } else { indexer = new Indexer(); indexer.Name = Path.GetFileNameWithoutExtension(outputFile); } string content = File.ReadAllText(inputFile); indexer.Index(content); indexer.Save(outputFile); return indexer.TokenTable.Count; } public static TwitterClientInfo LoadClientInfo() { XmlSerializer infoSerializer = new XmlSerializer(typeof(TwitterClientInfo)); using (XmlReader reader = XmlReader.Create("clientinfo.xml")) { return (TwitterClientInfo)infoSerializer.Deserialize(reader); } } public static OAuthToken LoadAuthToken() { XmlSerializer infoSerializer = new XmlSerializer(typeof(OAuthToken)); using (XmlReader reader = XmlReader.Create("authtoken.xml")) { return (OAuthToken)infoSerializer.Deserialize(reader); } } public static TwitterService GetAuthenticatedTwitter() { TwitterClientInfo clientInfo = EchoChamberHelper.LoadClientInfo(); OAuthToken authToken = EchoChamberHelper.LoadAuthToken(); TwitterService twitterService = new TwitterService(clientInfo); twitterService.AuthenticateWith(authToken.Token, authToken.TokenSecret); return twitterService; } public static string SanitizeTweets(string tweets) { tweets = tweets.Replace(",", ", "); tweets = tweets.Replace(";", "; "); tweets = tweets.Replace(".", ". "); tweets = tweets.Replace("(", " ("); tweets = tweets.Replace(")", ") "); tweets = tweets.Replace("\"", " "); tweets = tweets.Replace("&", " & "); tweets = tweets.Replace("=", " = "); tweets = tweets.Replace("@", ""); tweets = tweets.Replace("#", ""); tweets = tweets.Replace("?", "? "); tweets = tweets.Replace("!", "! "); tweets = tweets.Replace(":", ": "); return tweets; } public static void Serialize(string filename, object obj) { XmlSerializer serializer = new XmlSerializer(obj.GetType()); using (XmlWriter writer = XmlWriter.Create(filename)) { serializer.Serialize(writer, obj); } } public static T Deserialize(string filename) { XmlSerializer serializer = new XmlSerializer(typeof(T)); using (XmlReader reader = XmlReader.Create(filename)) { return (T)serializer.Deserialize(reader); } } } }