Beispiel #1
0
        private void HandleFBVideos()
        {
            try
            {
                var videoId = GetFBVideoId(activity.RawActivity.BodyStr); //try the body first
                if (!string.IsNullOrEmpty(videoId))
                {
                    activity.RawActivity.body = null;
                }
                else if (activity.RawActivity.Attachments.Any(a => a.type == "core_link"))
                {
                    //look inside the core link
                    var linkId = activity.RawActivity.Attachments.First(a => a.type == "core_link").id;
                    videoId = GetFBVideoId(CoreLinks.GetById(linkId).uri);
                }

                if (string.IsNullOrEmpty(videoId))
                {
                    return;
                }

                var videoData = GetVideoDataFromFB(videoId);

                //else

                //clean all existing attachments
                ActivityAttachments.DeleteForActivity(activity.ActivityId);
                ;
                //build the video attachment
                //var urls = new { video = iframely.url, thumb = iframely.links.thumbnail[0].href };
                Video newVideo = new Video()
                {
                    code        = videoData["code"],
                    description = videoData["description"],
                    title       = videoData["title"],
                    owner_id    = (int)activity.OwnerId,
                    owner_type  = activity.OwnerType,
                    type        = "fb"
                };

                AddVideoAttachmentToActivity(newVideo, activity);
                activity.RawActivity.body = Encoding.UTF8.GetBytes(FilterUrlFromBody(activity.RawActivity.BodyStr));
            }
            catch
            {
                Logger.Instance.Debug($"Failed to attach FB video");
                return;
            }
        }
Beispiel #2
0
        private void AddVideoAttachmentToActivity(Video newVideo, Activity activity)
        {
            newVideo.video_id = (uint)Videos.Add(newVideo);
            var attachment = new ActivityAttachment()
            {
                action_id = (uint)activity.ActivityId,
                id        = newVideo.video_id,
                type      = "video",
                mode      = true
            };

            attachment.attachment_id = (uint)ActivityAttachments.Add(attachment);

            activity.RawActivity.Attachments = new List <ActivityAttachment>();
            activity.RawActivity.Attachments.Add(attachment);
            activity.RawActivity.attachment_count = 1;
            activity.RawActivity.type             = "post_self_video";
            activityModified = true;
            Logger.Instance.Debug($"Attached FB video to {activity.ActivityId}");
        }