Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Bump decompress from 4.2.0 to 4.2.1 #31

Open
wants to merge 79 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
79 commits
Select commit Hold shift + click to select a range
b36919d
Add MIT license file
brettdh Mar 13, 2019
1133824
Merge pull request #2 from theliturgists/add-license-1
brettdh Mar 13, 2019
a970b95
Update issue templates
brettdh Mar 20, 2019
995ecfc
Add tool to sync public podcats from Podbean RSS to Contentful
brettdh Mar 22, 2019
ceabb39
Determine (and create) contributors and tags from episode description
brettdh Mar 25, 2019
a4356ce
Fix update bug
brettdh Mar 26, 2019
3838a1e
Create sync lambda and schedule
brettdh Mar 26, 2019
f6efb69
Merge pull request #5 from theliturgists/3-sync-public-podcasts
brettdh Mar 27, 2019
6962425
Add namespace to stack name
brettdh May 4, 2019
08867d7
Fliter liturgy items by patron tier
brettdh May 8, 2019
67927b5
Extract contentfulGet function for reuse
brettdh May 10, 2019
c2e771e
Add RSS endpoints with patreon access control
brettdh May 10, 2019
0ac2ae4
Make it a real podcast (more fields)
brettdh May 15, 2019
35b37a5
Redirect to public feed URL when available
brettdh May 15, 2019
8770891
Store Patreon token and return liturgists token
brettdh May 21, 2019
d699156
Handle 'All Mediations' category
brettdh May 22, 2019
4a07376
Remove extra logging and old comments
brettdh May 22, 2019
dda5f16
Reuse existing token mapping and tidy up fields
brettdh May 22, 2019
1bb9d39
Implement token refresh and deletion
brettdh May 24, 2019
9e7b8f5
Set error code indicating Patreon reconnect is required
brettdh May 24, 2019
fdf0c74
Merge pull request #7 from theliturgists/6-rss-feeds
brettdh May 27, 2019
e4ace64
Check pledge amount rather than name
brettdh May 27, 2019
0ff20f4
Use nanoid rather than jsonwebtoken
brettdh May 27, 2019
2a77caf
Fix collection type detection
brettdh May 28, 2019
234a5fb
Don't sync fields unless RSS item is newer than Contentful entry
brettdh Jun 5, 2019
08da505
Merge pull request #11 from theliturgists/10-sync-respect-pubdate
brettdh Jun 5, 2019
c776c3b
Fix image URL property name
brettdh Jun 7, 2019
299cbbd
Improve sync for different RSS/Contentful fields
brettdh Jun 7, 2019
b2421e8
Add test-notify command
brettdh Jul 25, 2019
d1612ea
Add Contentful webhook handler that sends Firebase notifications
brettdh Aug 2, 2019
1bbfe02
Fix category field name
brettdh Aug 3, 2019
17d0403
Add verification token header check
brettdh Aug 3, 2019
8a24e57
Only notify for recently-published entries
brettdh Aug 3, 2019
84da12f
Note channel in success response
brettdh Aug 3, 2019
355042f
Limit description size to avoid firebse validation error
brettdh Aug 3, 2019
7d63e13
Merge pull request #12 from theliturgists/4-push-notifications
brettdh Aug 5, 2019
932bd83
Strip HTML tags in notification body
brettdh Aug 6, 2019
7d70799
Bump lodash from 4.17.11 to 4.17.13
dependabot[bot] Aug 26, 2019
ccc092a
Merge pull request #15 from theliturgists/dependabot/npm_and_yarn/lod…
brettdh Aug 26, 2019
1450628
Bump axios from 0.18.0 to 0.18.1
dependabot[bot] Aug 26, 2019
6d542e7
Merge pull request #14 from theliturgists/dependabot/npm_and_yarn/axi…
brettdh Aug 26, 2019
d8d0694
Add limited no-creds Discourse API for fetching like/post counts
brettdh Aug 30, 2019
d94adcc
Merge pull request #18 from theliturgists/discourse-api-likes-posts
brettdh Aug 30, 2019
5d4bf8a
Bump eslint-utils from 1.3.1 to 1.4.2
dependabot[bot] Aug 30, 2019
caa4c1f
Merge pull request #16 from theliturgists/dependabot/npm_and_yarn/esl…
brettdh Aug 30, 2019
ee83183
Bump mixin-deep from 1.3.1 to 1.3.2
dependabot[bot] Aug 30, 2019
9e87b77
Merge pull request #17 from theliturgists/dependabot/npm_and_yarn/mix…
brettdh Aug 30, 2019
8a2a550
Fix security warnings from outdated node packages
brettdh Feb 4, 2020
107589d
Bump node version
brettdh Feb 6, 2020
60a299f
Switch to non-log-spamming fork of patreonjs
brettdh Feb 9, 2020
f83bafe
Use patreon-pledge module for access control
brettdh Mar 4, 2020
6211bfc
Merge pull request #22 from theliturgists/19-handle-new-patreon-tiers
brettdh Mar 4, 2020
c3579b4
Update reference of perms required for deploy and cert verification
brettdh Mar 5, 2020
9f7146b
Send scoped notifications
brettdh Mar 18, 2020
9f8bd2f
Put subtitle in first line of description
brettdh Mar 19, 2020
a43f2c9
Use html-to-text to render description
brettdh Mar 19, 2020
bb3a760
Merge pull request #24 from theliturgists/scoped-notifications
brettdh Mar 21, 2020
b1e2522
Don't sync episodes that were published more than a week ago
brettdh Mar 25, 2020
2820fef
Update patreon-pledge package
brettdh Apr 3, 2020
364f9fd
Capture errors during content filtering
brettdh Apr 3, 2020
1b30cd4
Omit podcast episodes without a published podcast
brettdh Apr 3, 2020
74a83ff
Fix 500 error when fetching an asset
brettdh Apr 4, 2020
db5e1d1
Add environment to sentry config
brettdh Apr 5, 2020
d068fa2
Sync tiers from Patreon to Contentful
brettdh Jun 17, 2020
96934b5
Move patreon-pledge code into backend
brettdh Jun 17, 2020
94b45bc
Rework pledge logic to use contentful tiers
brettdh Jun 23, 2020
54c6cb4
Add unit tests for pledge
brettdh Jun 26, 2020
82fa745
Add Github action for unit tests
brettdh Jun 28, 2020
1d7af03
Add jest-junit reporter and CI config
brettdh Jun 28, 2020
fc419fa
Remove unused test data
brettdh Jun 29, 2020
8c46f2c
Add podcast titles and ad-free listening to Pledge
brettdh Jun 29, 2020
c9c2379
Add patron-pledge API endpoint
brettdh Jun 29, 2020
4fbee2e
Add podcast IDs to patron-pledge endpoint
brettdh Jun 29, 2020
e338691
Merge pull request #29 from theliturgists/contentful-tiers
brettdh Jul 1, 2020
545cf48
Don't publish synced tiers if nothing has changed
brettdh Jul 6, 2020
57afe86
Add some fields to the patron-pledge API
brettdh Jul 9, 2020
089b9be
Fix unit tests
brettdh Jul 10, 2020
edc2c07
Add zoom room passcode to patron pledge data
brettdh Jul 31, 2020
9de41af
Bump decompress from 4.2.0 to 4.2.1
dependabot[bot] Sep 4, 2020
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 6 additions & 1 deletion .eslintrc.js
Original file line number Diff line number Diff line change
@@ -1,3 +1,8 @@
module.exports = {
"extends": "airbnb-base"
"extends": "airbnb-base",
"rules": {
"no-underscore-dangle": [ "error", { "allowAfterThis": true } ],
"import/prefer-default-export": [ "off" ],
"prefer-destructuring": [ "off " ],
}
};
28 changes: 28 additions & 0 deletions .github/ISSUE_TEMPLATE/bug_report.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
---
name: Bug report
about: Create a report to help us improve
title: ''
labels: bug
assignees: ''

---

**Describe the bug**
A clear and concise description of what the bug is.

**To Reproduce**
Steps to reproduce the behavior.

**Expected behavior**
A clear and concise description of what you expected to happen.

**Screenshots**
If applicable, add screenshots to help explain your problem.

**Environment**
- OS:
- Browser:
- Version:

**Additional context**
Add any other context about the problem here.
48 changes: 48 additions & 0 deletions .github/ISSUE_TEMPLATE/feature-request.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
---
name: Feature request
about: Suggest an idea for this project
title: ''
labels: enhancement
assignees: ''

---

<!--
Make sure the title above succinctly describes the issue, and then
please fill out the template below.
-->

<!-- delete after writing quest -->
This issue needs a [Quest](https://medium.com/@trek/source-quest-ff7d227d8fed).

The goal is to give the developer who implements this feature the proper context and
starting point so as to make it easy for anyone to get started quickly, regardless of background,
domain expertise, or familiarity with a particular part of the code.
<!-- delete after writing quest -->

## Motivation
<!--
Why is this change needed? Who will benefit from it?

This is a good place to link to the designs, if appropriate.
-->

## Plan of action
<!--
If this is a meta-feature composed of several smaller features, those smaller
features should be listed as a checklist here, and then issues should be made
for those sub-features and referenced here.

If it is a single feature, and it has multiple required steps that you already
know will be required, list them here to give whoever picks up the issue a head start.
-->

## Scope
<!--
Optional; only needed if it's not clear from the Plan of action above.

How do you know when you're done? This should clearly define the conditions
that *must* be true before this issue can be closed. Being explicit about this
helps clearly define the scope of work and avoid scope creep.
This is also a good place to list things that are explicitly NOT included.
-->
21 changes: 21 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
name: Unit tests

on: [push]

jobs:
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Use Node.js 12
uses: actions/setup-node@v1
with:
node-version: 12
- run: npm ci
- run: npm run test:ci
env:
CI: true
- uses: IgnusG/[email protected]
if: always() # Run regardless of whether other steps failed
with:
access-token: ${{ secrets.GITHUB_TOKEN }}
21 changes: 21 additions & 0 deletions LICENSE
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
MIT License

Copyright (c) 2019 The Liturgists

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
13 changes: 13 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,19 @@

Description forthcoming.

## Podbean Feed Sync

The sync lambda periodically syncs all podcasts in Contentful that
have a feed URL defined. If an episode's publication date is newer
in the feed than in Contentful, the feed data will be treated as
the correct version. However, this will only ever create or update fields;
it will never remove them.

Note that, with Podbean, the publication date of an item doesn't appear
to be updated unless the item is first saved as a draft, then published.
If an edit is made and published without this intermediate step, the
`pubDate` in the feed doesn't get updated.

## Dev setup

1. Obtain and configure AWS credentials
Expand Down
84 changes: 51 additions & 33 deletions aws/deploy_policy.json
Original file line number Diff line number Diff line change
Expand Up @@ -67,6 +67,7 @@
"cloudformation:Describe*",
"cloudformation:List*",
"cloudformation:Get*",
"cloudformation:SetStackPolicy",
"cloudformation:PreviewStackUpdate",
"cloudformation:CreateStack",
"cloudformation:UpdateStack",
Expand Down Expand Up @@ -140,55 +141,72 @@
{
"Effect": "Allow",
"Action": [
"route53:ChangeResourceRecordSets",
"route53:ListHostedZones",
"route53:ListResourceRecordSets"
"route53:ChangeResourceRecordSets",
"route53:ListHostedZones",
"route53:ListResourceRecordSets",
"route53:GetHostedZone"
],
"Resource": "*"
},
{
"Effect": "Allow",
"Action": [
"acm:AddTagsToCertificate",
"acm:RequestCertificate",
"acm:DescribeCertificate",
"acm:DeleteCertificate"
],
"Resource": "*"
"Effect": "Allow",
"Action": [
"acm:AddTagsToCertificate",
"acm:RequestCertificate",
"acm:DescribeCertificate",
"acm:DeleteCertificate",
"acm:ListCertificates"
],
"Resource": "*"
},
{
"Effect": "Allow",
"Action": [
"apigateway:GET",
"apigateway:POST",
"apigateway:DELETE"
],
"Resource": [
"arn:aws:apigateway:*::/domainnames",
"arn:aws:apigateway:*::/domainnames/*"
]
"Effect": "Allow",
"Action": [
"apigateway:*"
],
"Resource": [
"arn:aws:apigateway:*::/domainnames",
"arn:aws:apigateway:*::/domainnames/*",
"arn:aws:apigateway:*::/domainnames/*/*",
"arn:aws:apigateway:*::/domainnames/*/*/*"
]
},
{
"Effect": "Allow",
"Action": [
"cloudfront:UpdateDistribution"
],
"Resource": "*"
"Effect": "Allow",
"Action": [
"cloudfront:UpdateDistribution"
],
"Resource": "*"
},
{
"Action": [
"ssm:DescribeParameters"
"ssm:DescribeParameters"
],
"Resource": "*",
"Effect": "Allow"
},
{
"Action": [
"ssm:GetParameter",
"ssm:GetParameters"
],
"Resource": "arn:aws:ssm:us-east-1:682897274253:parameter/dev/*",
"Effect": "Allow"
"Action": [
"ssm:GetParameter",
"ssm:GetParameters"
],
"Resource": "arn:aws:ssm:us-east-1:682897274253:parameter/dev/*",
"Effect": "Allow"
},
{
"Action": [
"cloudwatch:*",
"events:*"
],
"Resource": "*",
"Effect": "Allow"
},
{
"Action": [
"dynamodb:*Table*"
],
"Resource": "*",
"Effect": "Allow"
}
]
}
Loading