public TwitterEventUserShow(SnooperExportBase exportBase, SPDYMsg spdyMsg) : base(exportBase, spdyMsg)
        {
            var uriParams = (spdyMsg.Header as SPDYRequestHeader).URIParameters;

            this.SourceUserId = uriParams["source_id"];
            this.TargetUserId = uriParams["target_id"];
        }
Beispiel #2
0
        protected override void ProcessConversation()
        {
            if (this.CurrentConversation == null)
            {
                return;
            }

            var stream = this.CurrentConversation.Key.IsSet
                ? new PDUDecrypterBase(this.CurrentConversation, EfcPDUProviderType.ContinueInterlay)
                : new PDUStreamBasedProvider(this.CurrentConversation, EfcPDUProviderType.ContinueInterlay);

            // ASCII encoding
            //var reader = new PDUStreamReader(stream, Encoding.GetEncoding(437));
            var reader = new PDUStreamReader(stream, Encoding.ASCII, true);

            if (!this.ExportBaseDirectory.Exists)
            {
                this.ExportBaseDirectory.Create();
            }

            while (true)
            {
                // Parse message
                this.OnBeforeProtocolParsing();
                var msg = new SPDYMsg(reader);

                if (msg.NothingToRead)
                {
                    break;
                }

                if (msg.InvalidReason != null)
                {
                    var description = "Parsing of SPDY message failed";
                    if (msg.Frames != null)
                    {
                        description += ", frame numbers: " + string.Join(",", msg.Frames);
                    }
                    if (msg.InvalidReason != null)
                    {
                        description += ", reason: " + msg.InvalidReason;
                    }

                    this.SnooperExport.TimeStampFirst = msg.TimeStamp;
                    this.SnooperExport.AddExportReport(ExportReport.ReportLevel.Warn, this.Name, description, msg.ExportSources);

                    continue;
                }
                this.OnAfterProtocolParsing();

                // Export message
                this.OnBeforeDataExporting();
                var exportedObject = new SnooperSPDYExportedObject(this.SnooperExport, msg);
                this.SnooperExport.AddExportObject(exportedObject);
                this.OnAfterDataExporting();
            }
        }
        public TwitterEventCreateTweet(SnooperExportBase exportBase, SPDYMsg spdyMsg) : base(exportBase, spdyMsg)
        {
            var spdyMsgContent = spdyMsg.Content;

            if (spdyMsgContent == null)
            {
                throw new Exception("Missing message body");
            }

            var fields = spdyMsgContent.GetFormUrlEncodedData();

            this.Text = fields["status"];
        }
        public TwitterEventSendMessage(SnooperExportBase exportBase, SPDYMsg spdyMsg) : base(exportBase, spdyMsg)
        {
            var spdyMsgContent = spdyMsg.Content;

            if (spdyMsgContent == null)
            {
                throw  new Exception("Missing message body");
            }

            var fields = spdyMsgContent.GetFormUrlEncodedData();

            // ConversationID is in format of RecipientID-SenderID
            var conversationId = fields["conversation_id"];
            var participants   = conversationId.Split('-');

            this.Recipient = participants[0];
            this.Sender    = participants[1];

            this.Text = fields["text"];
        }
Beispiel #5
0
 public TwitterEventTimelineView(SnooperExportBase exportBase, SPDYMsg spdyMsg) : base(exportBase, spdyMsg)
 {
 }
Beispiel #6
0
 protected TwitterEventBase(SnooperExportBase exportBase, SPDYMsg spdyMsg) : base(exportBase)
 {
     this.Frames    = spdyMsg.Frames;
     this.TimeStamp = spdyMsg.TimeStamp;
 }
        }                                          //EF

        public TwitterEventUserTimelineView(SnooperExportBase exportBase, SPDYMsg spdyMsg) : base(exportBase, spdyMsg)
        {
            var uriParams = (spdyMsg.Header as SPDYRequestHeader).URIParameters;

            this.UserId = uriParams["id"];
        }
        }                                    //EF

        public TwitterEventUserLookup(SnooperExportBase exportBase, SPDYMsg spdyMsg) : base(exportBase, spdyMsg)
        {
            var uriParams = (spdyMsg.Header as SPDYRequestHeader).URIParameters;

            this.UserIds = uriParams["user_id"].Split(',').ToList();
        }
        protected TwitterEventBase HandleEvent <TTwitterEventClass>(SnooperExportBase exportObject, IExportSource exportSource, SPDYMsg spdyMsg)
        {
            if (!typeof(TTwitterEventClass).IsSubclassOf(typeof(TwitterEventBase)))
            {
                throw new Exception("Not a TwitterEventBase subclass");
            }

            TwitterEventBase twitterEvent;

            try {
                twitterEvent = (TwitterEventBase)Activator.CreateInstance(typeof(TTwitterEventClass), new object[] { exportObject, spdyMsg });
            }
            catch (Exception) {
                return(null);
            }

            this.OnAfterProtocolParsing();

            this.OnBeforeDataExporting();
            twitterEvent.ExportSources.Add(exportSource);
            this.SnooperExport.AddExportObject(twitterEvent);
            this.OnAfterDataExporting();

            return(twitterEvent);
        }
Beispiel #10
0
        public TwitterEventSearch(SnooperExportBase exportBase, SPDYMsg spdyMsg) : base(exportBase, spdyMsg)
        {
            var uriParams = spdyMsg.SPDYRequestHeader.URIParameters;

            this.Query = uriParams["q"];
        }