Exemple #1
0
 public static void Populate(this AniDB_ReleaseGroup releasegroup, Raw_AniDB_Group raw)
 {
     releasegroup.GroupID        = raw.GroupID;
     releasegroup.Rating         = raw.Rating;
     releasegroup.Votes          = raw.Votes;
     releasegroup.AnimeCount     = raw.AnimeCount;
     releasegroup.FileCount      = raw.FileCount;
     releasegroup.GroupName      = raw.GroupName;
     releasegroup.GroupNameShort = raw.GroupNameShort;
     releasegroup.IRCChannel     = raw.IRCChannel;
     releasegroup.IRCServer      = raw.IRCServer;
     releasegroup.URL            = raw.URL;
     releasegroup.Picname        = raw.Picname;
 }
 public void Delete(int id)
 {
     using (var session = JMMService.SessionFactory.OpenSession())
     {
         // populate the database
         using (var transaction = session.BeginTransaction())
         {
             AniDB_ReleaseGroup cr = GetByID(id);
             if (cr != null)
             {
                 session.Delete(cr);
                 transaction.Commit();
             }
         }
     }
 }
        public override void ProcessCommand()
        {
            logger.Info("Processing CommandRequest_GetReleaseGroup: {0}", GroupID);

            try
            {
                AniDB_ReleaseGroup relGroup = RepoFactory.AniDB_ReleaseGroup.GetByGroupID(GroupID);

                if (ForceRefresh || relGroup == null)
                {
                    // redownload anime details from http ap so we can get an update character list
                    ShokoService.AnidbProcessor.GetReleaseGroupUDP(GroupID);
                }
            }
            catch (Exception ex)
            {
                logger.Error("Error processing CommandRequest_GetReleaseGroup: {0} - {1}", GroupID, ex);
            }
        }
Exemple #4
0
        public override void Run(IProgress <ICommand> progress = null)
        {
            logger.Info("Processing CommandRequest_GetReleaseGroup: {0}", GroupID);

            try
            {
                ReportInit(progress);
                AniDB_ReleaseGroup relGroup = Repo.Instance.AniDB_ReleaseGroup.GetByGroupID(GroupID);
                ReportUpdate(progress, 50);
                if (ForceRefresh || relGroup == null)
                {
                    // redownload anime details from http ap so we can get an update character list
                    ShokoService.AnidbProcessor.GetReleaseGroupUDP(GroupID);
                }

                ReportFinish(progress);
            }
            catch (Exception ex)
            {
                ReportError(progress, $"Error processing Command AniDb.GetReleaseGroup: {GroupID} - {ex}", ex);
            }
        }
Exemple #5
0
        // NO LONGER USED

        /*public AniDB_Seiyuu GetCreatorInfoUDP(int creatorID)
         * {
         *      if (!Login()) return null;
         *
         *      enHelperActivityType ev = enHelperActivityType.NoSuchCreator;
         *      AniDBCommand_GetCreatorInfo getCreatorCmd = null;
         *      lock (lockAniDBConnections)
         *      {
         *              Pause();
         *
         *              getCreatorCmd = new AniDBCommand_GetCreatorInfo();
         *              getCreatorCmd.Init(creatorID, true);
         *              ev = getCreatorCmd.Process(ref soUdp, ref remoteIpEndPoint, curSessionID, new UnicodeEncoding(true, false));
         *      }
         *
         *      AniDB_Seiyuu chr = null;
         *      if (ev == enHelperActivityType.GotCreatorInfo && getCreatorCmd.CreatorInfo != null)
         *      {
         *              AniDB_CreatorRepository repCreator = new AniDB_CreatorRepository();
         *              chr = repCreator.GetByCreatorID(creatorID);
         *              if (chr == null) chr = new AniDB_Seiyuu();
         *
         *              chr.Populate(getCreatorCmd.CreatorInfo);
         *              repCreator.Save(chr);
         *      }
         *
         *      return chr;
         * }*/

        public AniDB_ReleaseGroup GetReleaseGroupUDP(int groupID)
        {
            if (!Login())
            {
                return(null);
            }

            enHelperActivityType  ev     = enHelperActivityType.NoSuchGroup;
            AniDBCommand_GetGroup getCmd = null;

            lock (lockAniDBConnections)
            {
                Pause();

                getCmd = new AniDBCommand_GetGroup();
                getCmd.Init(groupID);
                SetWaitingOnResponse(true);
                ev = getCmd.Process(ref soUdp, ref remoteIpEndPoint, curSessionID, new UnicodeEncoding(true, false));
                SetWaitingOnResponse(false);
            }

            AniDB_ReleaseGroupRepository repRelGrp = new AniDB_ReleaseGroupRepository();
            AniDB_ReleaseGroup           relGroup  = null;

            if (ev == enHelperActivityType.GotGroup && getCmd.Group != null)
            {
                relGroup = repRelGrp.GetByGroupID(groupID);
                if (relGroup == null)
                {
                    relGroup = new AniDB_ReleaseGroup();
                }

                relGroup.Populate(getCmd.Group);
                repRelGrp.Save(relGroup);
            }

            return(relGroup);
        }
Exemple #6
0
        public CL_VideoDetailed ToClientDetailed(int userID)
        {
            CL_VideoDetailed cl = new CL_VideoDetailed();

            // get the cross ref episode
            List <CrossRef_File_Episode> xrefs = EpisodeCrossRefs;

            if (xrefs.Count == 0)
            {
                return(null);
            }

            cl.Percentage     = xrefs[0].Percentage;
            cl.EpisodeOrder   = xrefs[0].EpisodeOrder;
            cl.CrossRefSource = xrefs[0].CrossRefSource;
            cl.AnimeEpisodeID = xrefs[0].EpisodeID;

            cl.VideoLocal_FileName    = FileName;
            cl.VideoLocal_Hash        = Hash;
            cl.VideoLocal_FileSize    = FileSize;
            cl.VideoLocalID           = VideoLocalID;
            cl.VideoLocal_IsIgnored   = IsIgnored;
            cl.VideoLocal_IsVariation = IsVariation;
            cl.Places = Places.Select(a => a.ToClient()).ToList();

            cl.VideoLocal_MD5        = MD5;
            cl.VideoLocal_SHA1       = SHA1;
            cl.VideoLocal_CRC32      = CRC32;
            cl.VideoLocal_HashSource = HashSource;

            VideoLocal_User userRecord = GetUserRecord(userID);

            if (userRecord?.WatchedDate == null)
            {
                cl.VideoLocal_IsWatched      = 0;
                cl.VideoLocal_WatchedDate    = null;
                cl.VideoLocal_ResumePosition = 0;
            }
            else
            {
                cl.VideoLocal_IsWatched   = userRecord.WatchedDate.HasValue ? 1 : 0;
                cl.VideoLocal_WatchedDate = userRecord.WatchedDate;
            }
            if (userRecord != null)
            {
                cl.VideoLocal_ResumePosition = userRecord.ResumePosition;
            }
            cl.VideoInfo_AudioBitrate    = AudioBitrate;
            cl.VideoInfo_AudioCodec      = AudioCodec;
            cl.VideoInfo_Duration        = Duration;
            cl.VideoInfo_VideoBitrate    = VideoBitrate;
            cl.VideoInfo_VideoBitDepth   = VideoBitDepth;
            cl.VideoInfo_VideoCodec      = VideoCodec;
            cl.VideoInfo_VideoFrameRate  = VideoFrameRate;
            cl.VideoInfo_VideoResolution = VideoResolution;

            // AniDB File
            SVR_AniDB_File anifile = GetAniDBFile(); // to prevent multiple db calls

            if (anifile != null)
            {
                cl.AniDB_Anime_GroupName      = anifile.Anime_GroupName;
                cl.AniDB_Anime_GroupNameShort = anifile.Anime_GroupNameShort;
                cl.AniDB_AnimeID              = anifile.AnimeID;
                cl.AniDB_CRC                  = anifile.CRC;
                cl.AniDB_Episode_Rating       = anifile.Episode_Rating;
                cl.AniDB_Episode_Votes        = anifile.Episode_Votes;
                cl.AniDB_File_AudioCodec      = anifile.File_AudioCodec;
                cl.AniDB_File_Description     = anifile.File_Description;
                cl.AniDB_File_FileExtension   = anifile.File_FileExtension;
                cl.AniDB_File_LengthSeconds   = anifile.File_LengthSeconds;
                cl.AniDB_File_ReleaseDate     = anifile.File_ReleaseDate;
                cl.AniDB_File_Source          = anifile.File_Source;
                cl.AniDB_File_VideoCodec      = anifile.File_VideoCodec;
                cl.AniDB_File_VideoResolution = anifile.File_VideoResolution;
                cl.AniDB_FileID               = anifile.FileID;
                cl.AniDB_GroupID              = anifile.GroupID;
                cl.AniDB_MD5                  = anifile.MD5;
                cl.AniDB_SHA1                 = anifile.SHA1;
                cl.AniDB_File_FileVersion     = anifile.FileVersion;
                cl.AniDB_File_IsCensored      = anifile.IsCensored;
                cl.AniDB_File_IsChaptered     = anifile.IsChaptered;
                cl.AniDB_File_IsDeprecated    = anifile.IsDeprecated;
                cl.AniDB_File_InternalVersion = anifile.InternalVersion;

                // languages
                cl.LanguagesAudio    = anifile.LanguagesRAW;
                cl.LanguagesSubtitle = anifile.SubtitlesRAW;
            }
            else
            {
                cl.AniDB_Anime_GroupName      = string.Empty;
                cl.AniDB_Anime_GroupNameShort = string.Empty;
                cl.AniDB_CRC                  = string.Empty;
                cl.AniDB_File_AudioCodec      = string.Empty;
                cl.AniDB_File_Description     = string.Empty;
                cl.AniDB_File_FileExtension   = string.Empty;
                cl.AniDB_File_Source          = string.Empty;
                cl.AniDB_File_VideoCodec      = string.Empty;
                cl.AniDB_File_VideoResolution = string.Empty;
                cl.AniDB_MD5                  = string.Empty;
                cl.AniDB_SHA1                 = string.Empty;
                cl.AniDB_File_FileVersion     = 1;

                // languages
                cl.LanguagesAudio    = string.Empty;
                cl.LanguagesSubtitle = string.Empty;
            }


            AniDB_ReleaseGroup relGroup = ReleaseGroup; // to prevent multiple db calls

            if (relGroup != null)
            {
                cl.ReleaseGroup = relGroup;
            }
            else
            {
                cl.ReleaseGroup = null;
            }
            cl.Media = GetMediaFromUser(userID);
            return(cl);
        }