Example #1
0
        public void SetupTags(BaiduAppDetail appItem, AppProject appProject, App app)
        {
            if (!string.IsNullOrEmpty(appItem.Type))
            {
                switch (appItem.Type)
                {
                case "soft":
                    AppStoreUIService.AddTagForAppProject(AppConfigKey.TAG_SOFTWARE, appProject.Id);
                    AppStoreUIService.AddTagForAppProject(AppConfigKey.TAG_TOT_10_SOFTWARE, appProject.Id);
                    break;

                case "game":
                    AppStoreUIService.AddTagForAppProject(AppConfigKey.TAG_GAME, appProject.Id);
                    AppStoreUIService.AddTagForAppProject(AppConfigKey.TAG_TOT_10_GAMES, appProject.Id);
                    break;

                default:
                    break;
                }

                AppStoreUIService.AddTagForAppProject(AppConfigKey.TAG_LATEST, appProject.Id);
                AppStoreUIService.AddTagForAppProject(appItem.CategoryName, appProject.Id);

                AppStoreUIService.AddTagForApp(appItem.CategoryName, app.Id);
                AppStoreUIService.AddTagForApp(AppConfigKey.TAG_LIVE, app.Id);
                AppStoreUIService.AddTagForApp(AppConfigKey.TAG_VALID, app.Id);
                AppStoreUIService.AddTagForAppProject(AppConfigKey.TAG_FROM_BAIDU, appProject.Id);
            }
        }
Example #2
0
        public void DownloadResources(BaiduAppDetail appItem, out string appfileName)
        {
            appfileName = string.Empty;
            if (appItem != null)
            {
                MakeSureDIRExist(APK_Folder_Base);
                MakeSureDIRExist(Screenshots_Folder_Base);
                MakeSureDIRExist(Logo_Folder_Base);

                var iconFileName = GetFileNameFromUri(GetDownloadUrl(appItem.IconUrl));
                var iconFilePath = Path.Combine(Logo_Folder_Base, iconFileName);
                DownloadFile(appItem.IconUrl, iconFilePath);

                var screenshotlist = GetScreenShotlist(appItem);
                foreach (var img in screenshotlist)
                {
                    var screenshotFileName = GetFileNameFromUri(GetDownloadUrl(img));
                    var screenshotFilePath = Path.Combine(Screenshots_Folder_Base, screenshotFileName);
                    DownloadFile(img, screenshotFilePath);
                }

                var appdownloadurl = GetRedirectUrl(appItem.DownloadUrlDetail, out appfileName);
                var apkFilePath    = Path.Combine(APK_Folder_Base, appfileName.MakeSureNotNull());
                DownloadFile(appdownloadurl, apkFilePath);
            }
        }
Example #3
0
        public void SetupAppVersion(BaiduAppDetail appItem, App app, string appfileName)
        {
            if (!string.IsNullOrEmpty(appItem.DownloadUrlDetail))
            {
                FileInfo fi = new FileInfo(Path.Combine(APK_Folder_Base, appfileName));

                if (fi != null && fi.Exists)
                {
                    AppVersion ver = new AppVersion
                    {
                        FileSize        = (int)fi.Length,
                        FileUrl         = appfileName,
                        PublishDateTime = appItem.UpdateTimeDetail.ToExactDateTime("yyyy-MM-dd"),
                        Status          = 1,
                        VersionName     = appItem.VersionName,
                        Id = appItem.VersionCode
                    };

                    AndroidPackageView apkInfo = FileService.GetAndroidPackageInfomation(fi.FullName);
                    apkInfo.Id = ver.Id;

                    var originalApp = RedisService.Get <App>(app.Id);
                    if (app.Status == 0)
                    {
                        RedisService.UpdateWithRebuildIndex <App>(originalApp, app);
                        LogHelper.WriteInfo(string.Format("This App {0} status is invaild", app.Name), ConsoleColor.Gray);
                    }

                    RedisService.SetSubModel <App, AppVersion>(app.Id, ver);
                    RedisService.SetSubModel <App, AndroidPackageView>(app.Id, apkInfo);
                    AppStoreUIService.SetAppCurrentTestVersion(app.Id, ver.Id);
                    AppStoreUIService.PublishAppVersion(app.Id);
                }
            }
        }
Example #4
0
        public void AddNewVersionApp(ReformApp reformApp, BaiduAppDetail appItem, AppProject appProject)
        {
            try
            {
                var appitems = AppStoreUIService.GetAppsFromAppList <AppProject>(appProject.Id);
                foreach (var a in appitems)
                {
                    var versions = RedisService.GetAllSubModelIdsByType <App, AppVersion>(a.Id).ToIdsWithNoPrefix <AppVersion>();

                    if (!versions.Contains(appItem.VersionCode))
                    {
                        reformApp.NewVersionCount = AddNewVersionForApp(reformApp.NewVersionCount, appItem, a);
                    }
                    else
                    {
                        reformApp.DupVersionCount++;
                        LogHelper.WriteInfo(string.Format("Already has version {1} for app name {0}", appItem.Name, appItem.VersionCode), ConsoleColor.DarkYellow);
                    }
                }
            }
            catch (Exception ex)
            {
                LogHelper.WriteError(ex.Message + ex.StackTrace);
            }
        }
Example #5
0
        public App SetupApp(BaiduAppDetail appItem, AppProject appProject, App app)
        {
            var originalApp  = CloneHelper.DeepClone <App>(app);
            var originalApp2 = RedisService.Get <App>(app.Id);

            app.AppNo             = appProject.AppNo;
            app.AppProjectId      = appProject.Id;
            app.UseGreaterVersion = true;
            ClientImageInfo lg = new ClientImageInfo
            {
                BelongsToAppId = app.Id,
                FileUrl        = Path.Combine(LogoDirRoot, GetFileNameFromUri(GetDownloadUrl(appItem.IconUrl))),
                TypeId         = AppConfigKey.CLIENT_IMAGE_TYPE_ID
            };

            RedisService.Add <ClientImageInfo>(lg);
            app.ClientLogos = new List <ClientImageInfo>
            {
                lg
            };

            ImageInfo lg2 = new ImageInfo
            {
                BelongsToAppId = app.Id,
                FileUrl        = Path.Combine(LogoDirRoot, GetFileNameFromUri(GetDownloadUrl(appItem.IconUrl)))
            };

            RedisService.Add <ImageInfo>(lg2);
            app.Logo = lg2;

            app.Name          = appItem.Name;
            app.OrderNumber   = appItem.Score;
            app.DownloadTimes = appItem.Score;
            app.Status        = 1;
            var screenShotlist = GetScreenShotlist(appItem);

            foreach (var s in screenShotlist)
            {
                ImageInfo ss = new ImageInfo
                {
                    BelongsToAppId = app.Id,
                    FileUrl        = Path.Combine(ScreenshotDirRoot, GetFileNameFromUri(GetDownloadUrl(s)))
                };
                RedisService.Add <ImageInfo>(ss);
                app.ScreenShot.Add(ss);
            }
            app.PlatformType = AppConfigKey.PLATFORM_TYPE_ID.ConfigValue().ToInt32();
            app.Summary      = appItem.Summary.Replace("<br/>", string.Empty).Replace("<br>", string.Empty);
            var changeLog = appItem.ChangeLog.Replace("<br/>", string.Empty).Replace("<br>", string.Empty).Replace("NULL", string.Empty);

            app.Summary = string.Format("{0}\r\n{1}", app.Summary, changeLog);
            RedisService.UpdateWithRebuildIndex <App>(originalApp2, app);

            return(app);
        }
Example #6
0
        public bool CheckTencentApp(BaiduAppDetail appItem, App app)
        {
            var tags = AppStoreUIService.GetTagsByApp(app.Id);

            if (app.AppNo.StartsWith("tencent_") || tags.FindIndex(x => (x.Name == AppConfigKey.TAG_FROM_TENCENT)) != -1)
            {
                LogHelper.WriteInfo(string.Format("Tencent App -- {0}, skipped versionupdate", appItem.Name), ConsoleColor.Yellow);
                return(true);
            }
            LogHelper.WriteInfo(string.Format("Has new version for app, name {0}, downloading...", appItem.Name), ConsoleColor.Yellow);
            return(false);
        }
Example #7
0
        public bool CheckTYDApp(BaiduAppDetail appItem, App app)
        {
            var tags = AppStoreUIService.GetTagsByApp(app.Id);

            if (tags.FindIndex(x => (x.Name == AppConfigKey.TAG_TYD_SKIP) || (x.Id == AppConfigKey.TAG_TYD_SKIP_ID)) != -1)
            {
                LogHelper.WriteInfo(string.Format("TYD手动维护 -- {0}, skipped", appItem.Name), ConsoleColor.Yellow);
                return(true);
            }
            LogHelper.WriteInfo(string.Format("Has new version for app, name {0}, downloading...", appItem.Name), ConsoleColor.Yellow);
            return(false);
        }
Example #8
0
        public AppProject SetupAppProject(BaiduAppDetail appItem, AppProject appProject)
        {
            var originalAppProject = CloneHelper.DeepClone <AppProject>(appProject);

            appProject.AppNo       = "baidu_" + appItem.Id;
            appProject.Creator     = appItem.SourceName;
            appProject.LogoFile    = GetFileNameFromUri(GetDownloadUrl(appItem.IconUrl));
            appProject.Name        = appItem.Name;
            appProject.PackageName = appItem.PackageName;
            //appProject.Rate = appItem.Rating.ToInt32();
            RedisService.UpdateWithRebuildIndex <AppProject>(originalAppProject, appProject);

            return(appProject);
        }
Example #9
0
        public AppProject AddNewApp(BaiduAppDetail appItem, AppProject appProject, string appfileName)
        {
            try
            {
                var app = new App();

                appProject = SetupAppList(appProject, out app);
                appProject = SetupAppProject(appItem, appProject);
                app        = SetupApp(appItem, appProject, app);
                SetupAppVersion(appItem, app, appfileName);
                SetupTags(appItem, appProject, app);
            }
            catch (Exception ex)
            {
                LogHelper.WriteError(ex.Message + ex.StackTrace);
                AppProjectDelete(appProject.Id);
                LogHelper.WriteInfo(string.Format("AppProjectId: {0} is delete.", appProject.Id));
            }
            return(appProject);
        }
Example #10
0
        private int AddNewVersionForApp(int newVersionCount, BaiduAppDetail appItem, App app)
        {
            newVersionCount++;

            var isTYD     = CheckTYDApp(appItem, app);
            var isTencent = CheckTencentApp(appItem, app);

            if (!isTYD && !isTencent)
            {
                var appfileName = string.Empty;
                DownloadResources(appItem, out appfileName);

                if (!string.IsNullOrEmpty(appfileName))
                {
                    SetupAppVersion(appItem, app, appfileName);

                    SetupTags(appItem, app);
                }
            }
            return(newVersionCount);
        }
Example #11
0
        public void BuildAppProject(ReformApp reformApp, BaiduAppDetail appItem)
        {
            var appProject = AppStoreUIService.GetAppProjectByPKGName(appItem.PackageName);

            if (appProject == null)
            {
                LogHelper.WriteInfo(string.Format("Has new app, name {0}, downloading...", appItem.Name), ConsoleColor.Yellow);
                reformApp.NewAppCount++;

                var appfileName = string.Empty;
                DownloadResources(appItem, out appfileName);

                if (!string.IsNullOrEmpty(appfileName))
                {
                    appProject = AddNewApp(appItem, appProject, appfileName);
                }
            }
            else
            {
                try
                {
                    var appitems = AppStoreUIService.GetAppsFromAppList <AppProject>(appProject.Id);
                    if (appitems == null)
                    {
                        AppProjectDelete(appProject.Id);
                    }
                    else
                    {
                        AddNewVersionApp(reformApp, appItem, appProject);
                    }
                }
                catch (Exception)
                {
                    AppProjectDelete(appProject.Id);
                }
            }
        }
Example #12
0
        public string[] GetScreenShotlist(BaiduAppDetail appItem)
        {
            var imagelist = appItem.ScreenShot.Split(new string[] { ";" }, StringSplitOptions.RemoveEmptyEntries);

            return(imagelist);
        }