Example #1
0
        protected override async Task Archive(ReaderItem item)
        {
            if (!AuthenticationService.IsLoggedInToPocket)
            {
                return;
            }
            var failed = false;

            try
            {
                if (!await _pocketClient.Archive(item.Id))
                {
                    failed = true;
                }
            }
            catch (Exception ex)
            {
                Log.ErrorException("PocketArchiveMessage", ex);
                failed = true;
            }

            if (!failed)
            {
                var itemToDelete = Items.FirstOrDefault(x => x.Id == item.Id);
                if (itemToDelete == null)
                {
                    return;
                }

                Items.Remove(itemToDelete);
                CacheService.SavePocketItems(Items).ConfigureAwait(false);

                await CacheService.DeleteArticle(item);
            }
        }
        /// <summary>
        /// Moves Article from pocket to list
        /// </summary>
        /// <returns></returns>
        public Article MoveArticleFromPocketByTag(string tag)
        {
            logger.LogDebug($"Starting downloading article for tag:{tag}");
            var items = pocketClient.Get(state: State.unread, tag: tag, sort: Sort.newest);

            items.Wait();

            var item = items.Result.FirstOrDefault();

            if (item == null)
            {
                logger.LogWarning($"Tag {tag} has no more articles");
                return(null);
            }
            var id = item.ID;

            logger.LogInformation($"Article ID :{id}");
            var article = PocketMapper.Map(item);

#if !TEST
            pocketClient.Archive(id);
#endif
            return(article);
        }