Mac Siri
842e6880b8
Routine rubocop fix on /spec ( #19217 )
...
* Softrun rubocop
* Hardrun rubocop (-A)
* Change a rubocop rule
* Add missing cops
* Undo & redo rubocop -A
2023-03-21 09:55:26 -04:00
Mac Siri
54f3d704fe
Add timeout to GetMediaUrl's HTTParty ( #18136 )
2022-07-15 17:33:44 -04:00
Mac Siri
678dda8cf4
Routine Rubopcop lint fixes ( #17844 )
...
* Routine Rubopcop lint fixes
* Undo app_secrets_spec changes
* Fix broken spec
2022-06-07 10:17:16 -04:00
Daniel Uber
913ca720a8
Don't create podcast episodes without any media ( #17449 )
...
* Don't create podcast episodes without a media_url
There is an early return from add_media_url to prevent using an empty
enclosure_url, which avoids errors in
`GetMediaUrl.call(a_blank_value)`, however there's also a not null
constraint on podcast_episodes.media_url in the database, which causes
upsert to raise an error.
Returning early here avoids the error (which had halted the worker).
See also
https://app.honeybadger.io/projects/66984/faults/80833402
This error happens regularly, 96 times per day in DEV, it looks like at least
one podcast feed_url is for an rss feed filtered by /tag/podcast/,
(and at least one post was tagged "podcast" but didn't include any
media to get).
My understanding is at worst we'll ignore the error silently.
* Add test cases
given a blog post (not a podcast episode, no media url), don't raise
any error, don't create any episode.
Included codepunk.io feed that was showing this issue initially.
2022-04-27 11:21:03 -05:00
Daniel Uber
7f1fdc7324
Produce a meaningful slug from podcast episode title ( #17184 )
...
* Use sluggerize to produce a slug from podcast episode title
This is essentially the process we use for Article#title_to_slug
without the random trailing bits on the end (since podcast episodes
had not worked that way previously).
* Add test case for slug generation
* Oh, the test only works if you checkin the fixture, too
2022-04-08 16:30:16 -05:00
Mac Siri
b81d8c9479
Add Errno::EHOSTUNREACH to Podcasts's rescue list ( #16884 )
...
* Add Errno::EHOSTUNREACH to Podcasts's rescue list
* Add spec
2022-03-15 14:05:04 -04:00
Mac Siri
9be5c8c6b0
Routine Rubocop fixes ( #16838 )
2022-03-09 09:32:50 -05:00
Josh Soref
0403e78f08
Spelling ( #15702 )
...
* spelling: access
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>
* spelling: additional
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>
* spelling: administrative
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>
* spelling: aggregate
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>
* spelling: assigns
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>
* spelling: attributes
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>
* spelling: autocomplete
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>
* spelling: because
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>
* spelling: between
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>
* spelling: bootstrap
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>
* spelling: calculating
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>
* spelling: captcha
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>
* spelling: character
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>
* spelling: chosen
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>
* spelling: commenter
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>
* spelling: competitor
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>
* spelling: componentize
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>
* spelling: contrast
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>
* spelling: corresponding
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>
* spelling: description
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>
* spelling: destroyed
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>
* spelling: destroys
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>
* spelling: discussion
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>
* spelling: episode
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>
* spelling: escaped
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>
* spelling: evaluates
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>
* spelling: expired
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>
* spelling: explicitly
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>
* spelling: facebook
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>
* spelling: fragment
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>
* spelling: functionality
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>
* spelling: improper
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>
* spelling: incentive
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>
* spelling: interfere
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>
* spelling: latest
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>
* spelling: message
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>
* spelling: minimum
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>
* spelling: moderator
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>
* spelling: mouseover
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>
* spelling: mutual
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>
* spelling: nonexistent
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>
* spelling: notification
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>
* spelling: occasionally
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>
* spelling: occurrence
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>
* spelling: occurs
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>
* spelling: octokit
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>
* spelling: offset
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>
* spelling: omitted
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>
* spelling: opacity
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>
* spelling: organization
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>
* spelling: organizations
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>
* spelling: overridden
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>
* spelling: override
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>
* spelling: overriding
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>
* spelling: prefill
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>
* spelling: previous
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>
* spelling: profile
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>
* spelling: recycling
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>
* spelling: registered
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>
* spelling: repositories
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>
* spelling: rescuing
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>
* spelling: response
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>
* spelling: returns
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>
* spelling: second
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>
* spelling: separator
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>
* spelling: services
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>
* spelling: subscriber
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>
* spelling: subscription
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>
* spelling: success
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>
* spelling: successful
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>
* spelling: successfully
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>
* spelling: suppress
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>
* spelling: test
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>
* spelling: thought
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>
* spelling: uniqueness
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>
* spelling: unknown
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>
* spelling: unproductive
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>
* spelling: unreachable
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>
* spelling: unsuccessful
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>
* spelling: utilities
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>
* spelling: utility
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>
* spelling: valid
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>
* spelling: voluntarily
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>
* spelling: vomited
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>
* spelling: website
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>
* spelling: withholding
Signed-off-by: Josh Soref <jsoref@users.noreply.github.com>
Co-authored-by: Josh Soref <jsoref@users.noreply.github.com>
2021-12-07 06:59:10 -07:00
Daniel Uber
9f2130ce32
handle openssl errors when checking podcast episode for https ( #14439 )
2021-08-09 12:52:20 -05:00
Mac Siri
0a3a45a990
Add SocketError to GetMediaUrl's exception rescue ( #14177 )
2021-07-08 16:31:15 -04:00
Alex
393ba00221
Remove Elasticsearch ✂️ ✂️ ✂️ ✂️ ✂️ ✂️ ✂️ ✂️ ✂️ ✂️ ✂️ ✂️ ✂️ ✂️ ( #13606 )
...
* Attempt number 1
* Fix rack_attack specs
* Fix users_searches_users spec
* Fix display_users_search_spec
* Fix comment typo
* Remove search:destroy task from cypress
* Remove port 9300 from gitpod
* Stub response in attack_spec
2021-05-03 11:09:45 -04:00
Ben Halpern
36b1edb3e2
[deploy] Ensure podcast episodes are created with processed_html ( #10715 )
2020-10-07 12:09:36 -04:00
Molly Struve
13fb5c4278
[deploy] Optimization:Store Podcast Ep Data in Redis, Rather than Sending as Sidekiq Argument ( #10331 )
2020-09-16 08:26:38 -05:00
rhymes
5b62811c98
[deploy] Rubocop: fix violations of Layout/LineLength ( #9197 )
2020-07-08 08:36:36 -05:00
Molly Struve
3832e9356d
rescue Addressable::URI::InvalidURIError and mark podcast ep unreachable ( #7343 )
2020-04-17 13:11:08 -05:00
Molly Struve
bca0573a14
rescue invalid URL errors and mark as unreachable for podcast episodes ( #7137 )
2020-04-07 12:32:04 -04:00
Molly Struve
6f95744698
Move create PodcastEpisode callbacks to create Podcast Service ( #7077 ) [deploy]
...
* move create podcast callbacks to create podcast service
* add indexing spec to creator
2020-04-06 12:41:00 +02:00
Molly Struve
c3b88d19de
Dont let HTTParty::RedirectionTooDeep Errors kill Podcast Ep. Update Workers ( #6735 ) [deploy]
...
Co-authored-by: lightalloy <lightallloy@gmail.com
2020-03-20 08:19:14 -05:00
Anna Buianova
481db91fdc
Remove active job remainders ( #6603 )
...
* Replaced remaining ActiveJob test helpers with sidekiq ones
* Removed unused ActiveJob shared example
2020-03-12 15:31:43 +01:00
Julianna Tetreault
f6478fb7cc
Replace peform_enqueued_jobs with sidekiq_perform_enqueued_jobs in specs ( #6454 )
...
* Replace peform_enqueued_jobs with sidekiq_perform_enqueued_jobs in specs
* Fix typo in reaction_spec
2020-03-04 11:39:48 -07:00
Asha Balasubramaniam
11adeb3215
Migrate PodcastEpisodes::UpdateMediaUrlJob to PodcastEpisodes::UpdateMediaUrlWorker for Sidekiq ( #5729 )
2020-01-27 09:40:34 -05:00
Asha Balasubramaniam
bc137ff762
Migrate PodcastEpisodes::CreateJob to PodcastEpisodes::CreateWorker for Sidekiq ( #5633 )
...
The tests around `Podcasts::Feed` helped catch a bug around the
migration of the podcast episode creation delayed job where the sidekiq
version was passing a string version of item hash to
`Podcasts::CreateEpisode` which was in fact expecting the hash to
contain symbols.
2020-01-23 15:37:43 -05:00
Anna Buianova
bff6cd6985
Fix podcast episode validation error ( #4967 ) [deploy]
...
* Started fixing podcast episode bug
* Fix the specs for create podcast episode
2019-11-29 16:16:19 -05:00
rhymes
0ef4ce4250
Adjust type tags for RSpec ( #4864 )
2019-11-20 13:01:30 -05:00
Anna Buianova
41ab013050
Normalize podcast url before checking for reachability ( #4806 )
...
* Normalize podcast url before checking for reachability
* Added to_s when normalizing episode url and simplified tests
2019-11-14 08:58:29 -05:00
Anna Buianova
41ba46623c
Increase redirects limit when fetching podcasts ( #4479 )
2019-10-17 11:24:29 -04:00
Anna Buianova
3b97eb3f9c
Rescue all Errno exceptions while fetching a podcast episode ( #3689 )
2019-08-12 11:57:43 -04:00
Anna Buianova
7c1917f5f7
Don't hide podcasts if they have reachable episodes ( #3532 )
...
* Don't hide podcasts if they have reachable episodes
Recheck episodes' reachability after the podcast status is set to
unreachable
* Update db/schema.rb
* Fix GetEpisodesJob specs
* Fix stories spec
* Episodes are reachable even if the podcast is unreachable
* Improve the Podcast.reachable query
* Fix podcasts root page spec
* Add index concurrently
2019-07-26 11:33:31 -04:00
Anna Buianova
94ab4e23fe
Update podcast episode statuses #2952 ( #3450 )
2019-07-16 13:36:25 -04:00
Anna Buianova
135d1ddf2b
Don't check url and create podcast episode when there's no enclosure url ( #3460 )
...
* Don't check url and create podcast episode when there's no enclosure url
* Keep a couple of records of podcast's rss for test
2019-07-12 12:54:14 -04:00
Anna Buianova
567579daf3
Podcast episodes statuses #2952 ( #3386 )
2019-07-12 10:03:57 -04:00
Anna Buianova
c3ed38f832
Moved creating a new podcast to a separate ActiveJob #2952 ( #3373 )
...
* Podcasts reachable status #2952
* Specs for podcasts statuses
* Moved podcast episode create to a separate ActiveJob
* Use RssItemData wrapper in GetEpisode for consistency
* Reorganize services/podcasts
2019-07-04 13:10:54 -04:00
Anna Buianova
3d81753285
Rescue possible SSLError when fetching a podcast ( #3374 )
2019-07-03 10:36:36 -04:00
Anna Buianova
d6a151703c
Podcasts reachable status #2952 ( #3341 )
...
* Podcasts reachable status #2952
* Specs for podcasts statuses
2019-07-02 09:18:27 -04:00
Anna Buianova
6395fe48e2
Moved podcast fixtures to their own folder ( #3343 ) [ci skip]
2019-07-01 12:37:28 -04:00
Anna Buianova
bfa1bdc37f
More specs and refactoring podcasts fetching ( #3245 )
...
* More specs and refactoring podcasts fetching
* Fixed PodcastFeed references in tests
* Pass podcast_id instead of podcast to CreateEpisode
2019-06-21 21:31:15 -04:00