Example #1
0
        void serverStatusTimer_Elapsed(object sender, ElapsedEventArgs e)
        {
            try
            {
                if (!ServerOnline)
                {
                    serverStatusTimer.Start();
                    return;
                }

                CL_ServerStatus status = Instance.ShokoServices.GetServerStatus();

                HasherQueueCount  = status.HashQueueCount;
                GeneralQueueCount = status.GeneralQueueCount;

                HasherQueueState  = status.HashQueueState;
                GeneralQueueState = status.GeneralQueueState;

                IsBanned  = status.IsBanned;
                BanReason = status.BanReason;

                HasherQueueRunning  = !HasherQueueState.ToLower().Contains("pause");
                GeneralQueueRunning = !GeneralQueueState.ToLower().Contains("pause");

                ServerStatusEventArgs evt = new ServerStatusEventArgs();
                evt.BanReason           = BanReason;
                evt.GeneralQueueCount   = GeneralQueueCount;
                evt.GeneralQueueRunning = GeneralQueueRunning;
                evt.GeneralQueueState   = GeneralQueueState;
                evt.HasherQueueCount    = HasherQueueCount;
                evt.HasherQueueRunning  = HasherQueueRunning;
                evt.HasherQueueState    = HasherQueueState;

                evt.ImagesQueueCount   = status.ImagesQueueCount;
                evt.ImagesQueueRunning = !status.ImagesQueueState.ToLower().Contains("pause");
                evt.ImagesQueueState   = status.ImagesQueueState;

                evt.IsBanned = IsBanned;

                OnServerStatusEvent(evt);

                //string msg = string.Format("JMM Server Status: {0}/{1} -- {2}/{3}", GeneralQueueState, GeneralQueueCount, HasherQueueState, HasherQueueCount);
                //BaseConfig.MyAnimeLog.Write(msg);
            }

            catch
            {
                // ignored
            }

            serverStatusTimer.Start();
        }
Example #2
0
        public bool SetupClient()
        {
            ServerOnline   = false;
            _shokoservices = null;
            ImportFolders.Clear();

            if (!SettingsAreValid())
            {
                return(false);
            }

            try
            {
                AnimePluginSettings settings = AnimePluginSettings.Instance;
                string url = string.Format(@"http://{0}:{1}/", settings.JMMServer_Address, settings.JMMServer_Port);
                BaseConfig.MyAnimeLog.Write("JMM Server URL: " + url);


                Dictionary <Type, Type> mappings = new Dictionary <Type, Type>();

                //Mappings area.
                mappings.Add(typeof(CL_AniDB_Anime), typeof(VM_AniDB_Anime));
                mappings.Add(typeof(CL_AniDB_Anime_DefaultImage), typeof(VM_AniDB_Anime_DefaultImage));
                mappings.Add(typeof(CL_AniDB_AnimeCrossRefs), typeof(VM_AniDB_AnimeCrossRefs));
                mappings.Add(typeof(CL_AnimeEpisode_User), typeof(VM_AnimeEpisode_User));
                mappings.Add(typeof(CL_AnimeGroup_User), typeof(VM_AnimeGroup_User));
                mappings.Add(typeof(CL_AnimeSeries_User), typeof(VM_AnimeSeries_User));
                mappings.Add(typeof(CL_BookmarkedAnime), typeof(VM_BookmarkedAnime));
                mappings.Add(typeof(CL_GroupFilter), typeof(VM_GroupFilter));
                mappings.Add(typeof(MovieDB_Fanart), typeof(VM_MovieDB_Fanart));
                mappings.Add(typeof(MovieDB_Poster), typeof(VM_MovieDB_Poster));
                mappings.Add(typeof(CL_Recommendation), typeof(VM_Recommendation));
                mappings.Add(typeof(Trakt_ImageFanart), typeof(VM_Trakt_ImageFanart));
                mappings.Add(typeof(Trakt_ImagePoster), typeof(VM_Trakt_ImagePoster));
                mappings.Add(typeof(TvDB_ImageFanart), typeof(VM_TvDB_ImageFanart));
                mappings.Add(typeof(TvDB_ImagePoster), typeof(VM_TvDB_ImagePoster));
                mappings.Add(typeof(TvDB_ImageWideBanner), typeof(VM_TvDB_ImageWideBanner));
                mappings.Add(typeof(CL_VideoDetailed), typeof(VM_VideoDetailed));
                mappings.Add(typeof(CL_VideoLocal), typeof(VM_VideoLocal));


                _shokoservices =
                    ClientFactory.Create <IShokoServer>(
                        $"http://{settings.JMMServer_Address}:{settings.JMMServer_Port}/", mappings);
                // try connecting to see if the server is responding
                CL_ServerStatus status = Instance.ShokoServices.GetServerStatus();
                ServerOnline = true;

                GetServerSettings();
                RefreshImportFolders();

                BaseConfig.MyAnimeLog.Write("JMM Server Status: " + status.GeneralQueueState);

                return(true);
            }
            catch (Exception ex)
            {
                //Utils.ShowErrorMessage(ex);
                BaseConfig.MyAnimeLog.Write(ex.ToString());
                return(false);
            }
        }