Skip to content

Commit

Permalink
Merge branch 'Podcastindex-org:master' into enhancement#233__reply-to…
Browse files Browse the repository at this point in the history
…-comments
  • Loading branch information
dellagustin authored May 4, 2023
2 parents 7f59726 + b7d2b76 commit bc65ff6
Show file tree
Hide file tree
Showing 40 changed files with 478 additions and 129 deletions.
Binary file added server/assets/audicylogo.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added server/assets/spreaker.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
6 changes: 4 additions & 2 deletions server/data/apps-schema.json
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,8 @@
"blockchain",
"podcaster wallet",
"open source",
"other"
"other",
"chat bot"
]
}
},
Expand Down Expand Up @@ -75,7 +76,8 @@
"Sailfish OS",
"Umbrel",
"Citadel",
"Hive"
"Hive",
"Discord"
]
}
},
Expand Down
81 changes: 81 additions & 0 deletions server/data/apps.json
Original file line number Diff line number Diff line change
@@ -1,4 +1,27 @@
[
{
"appName": "Audicy",
"appType": [
"podcast player",
"other",
"chat bot"
],
"appUrl": "https://audicy.xyz",
"appIconUrl": "audicylogo.png",
"platforms": [
"Discord"
],
"supportedElements": [
{
"elementName": "Search",
"elementURL": "https://audicy.xyz"
},
{
"elementName": "Episode",
"elementURL": "https://audicy.xyz"
}
]
},
{
"appName": "chaptertool",
"appType": [
Expand Down Expand Up @@ -1132,6 +1155,22 @@
{
"elementName": "Txt",
"elementURL": "https://blubrry.com/support/media-hosting-documentation/blubrry-dashboard-podcasting-2-0-features/"
},
{
"elementName": "Season",
"elementURL": "https://blubrry.com/support/media-hosting-documentation/blubrry-dashboard-podcasting-2-0-features/"
},
{
"elementName": "Episode",
"elementURL": "https://blubrry.com/support/media-hosting-documentation/blubrry-dashboard-podcasting-2-0-features/"
},
{
"elementName": "Trailer",
"elementUrl": "https://blubrry.com/support/media-hosting-documentation/blubrry-dashboard-podcasting-2-0-features/"
},
{
"elementName": "License",
"elementURL": "https://blubrry.com/support/media-hosting-documentation/blubrry-dashboard-podcasting-2-0-features/"
}
]
},
Expand Down Expand Up @@ -1192,6 +1231,22 @@
{
"elementName": "Txt",
"elementURL": "https://blubrry.com/support/powerpress-documentation/powerpress-podcasting-2-0-features/"
},
{
"elementName": "Season",
"elementURL": "https://blubrry.com/support/powerpress-documentation/powerpress-podcasting-2-0-features/"
},
{
"elementName": "Episode",
"elementURL": "https://blubrry.com/support/powerpress-documentation/powerpress-podcasting-2-0-features/"
},
{
"elementName": "Trailer",
"elementURL": "https://blubrry.com/support/powerpress-documentation/powerpress-podcasting-2-0-features/"
},
{
"elementName": "License",
"elementURL": "https://blubrry.com/support/powerpress-documentation/powerpress-podcasting-2-0-features/"
}
]
},
Expand Down Expand Up @@ -2064,6 +2119,10 @@
{
"elementName": "Txt",
"elementURL": "https://rssblue.com/help/podcast-metadata#txt-records"
},
{
"elementName": "Podping",
"elementURL": "https://rssblue.com/blog/podping-is-live"
}
]
},
Expand Down Expand Up @@ -2316,5 +2375,27 @@
"elementURL": "https://conshax.com"
}
]
},
{
"appName": "Spreaker from iHeart",
"appType": [
"hosting",
"podcast player"
],
"appUrl": "https://www.spreaker.com",
"appIconUrl": "spreaker.png",
"platforms": [
"Android",
"iOS",
"MacOS",
"Web",
"Windows"
],
"supportedElements": [
{
"elementName": "Transcript",
"elementURL": "https://help.spreaker.com/en/articles/6886489-podcast-transcript"
}
]
}
]
8 changes: 7 additions & 1 deletion server/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -88,7 +88,13 @@ app.use('/api/recent/episodes', async (req, res) => {
})

app.use('/api/podcasts/bytag', async (req, res) => {
const response = await api.podcastsByTag()
let max = req.query.max
let start_at = req.query.start_at
const response = await api.custom('podcasts/bytag', {
'podcast-value': '',
'max': max,
'start_at': start_at,
})
res.send(response)
})

Expand Down
1 change: 1 addition & 0 deletions ui/images/dark_mode.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
1 change: 1 addition & 0 deletions ui/images/light_mode.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
3 changes: 1 addition & 2 deletions ui/images/transcript.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
7 changes: 4 additions & 3 deletions ui/src/components/Button/styles.scss
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
:root {
--button-background: #F0F0F0;
--button-hover-color: #f2f2f2;
}

@media (prefers-color-scheme: dark) {
:root {
&[data-theme="dark"] {
--button-background: #1a1a1a;
--button-hover-color: #302d2d;
}
}
Expand All @@ -14,6 +14,7 @@
font-family: var(--font-family-exp);
font-size: 16px;
color: var(--fg-main);
background-color: var(--button-background);
padding: 8px 20px;
text-align: center;
white-space: nowrap;
Expand Down
2 changes: 1 addition & 1 deletion ui/src/components/EpisodeItem/index.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -143,7 +143,7 @@ export default class EpisodeItem extends React.PureComponent<IProps> {

{episodeEnclosure ?
<a
className="episode-enclosure"
className="episode-link"
href={episodeEnclosure}
title="Download"
target="_blank"
Expand Down
11 changes: 4 additions & 7 deletions ui/src/components/EpisodeItem/styles.scss
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,8 @@
--bg-color: #ffffff;
--border-color: #d6d6d6;
--cover-art-border-color: lighten(#d6d6d6, 0.2);
}

@media (prefers-color-scheme: dark) {
:root {
&[data-theme="dark"] {
--bg-color: #180e0e;
--border-color: #505050;
--cover-art-border-color: var(--border-color);
Expand Down Expand Up @@ -36,8 +34,9 @@
justify-content: center;
padding: 15px 15px 15px 15px;
img {
height: 140px;
max-height: 140px;
width: 140px;
//object-fit: contain;
border-radius: 10px;
border: 1px solid var(--cover-art-border-color);
}
Expand Down Expand Up @@ -71,15 +70,13 @@
.episode-links {
display: inline-flex;
flex-direction: row;
gap: 5px;
}

.episode-link img, .episode-play-pause-mobile {
width: 30px;
height: 30px;
}
.episode-enclosure {
margin-left: 10px;
}
.episode-play-pause-mobile {
display: none;
margin-left: 20px;
Expand Down
6 changes: 2 additions & 4 deletions ui/src/components/EpisodeList/index.tsx
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import * as React from 'react'
import EpisodeItem from '../EpisodeItem'
import InfiniteList from '../InfiniteList'
import { fixURL } from '../../utils'
import { fixURL, getImage } from '../../utils'

const he = require('he')

Expand Down Expand Up @@ -51,8 +51,6 @@ export default class EpisodeList extends React.PureComponent<IProps> {
let {
id,
title,
image,
feedImage,
link,
enclosureUrl,
transcriptUrl,
Expand All @@ -64,7 +62,7 @@ export default class EpisodeList extends React.PureComponent<IProps> {
} = item
let {podcast} = this.props
// try to use episode image, fall back to feed images
image = image || feedImage || podcast.image || podcast.artwork
const image = getImage(item) || getImage(podcast)
enclosureUrl = fixURL(enclosureUrl)
description = he.decode(description)

Expand Down
4 changes: 1 addition & 3 deletions ui/src/components/KPI/styles.scss
Original file line number Diff line number Diff line change
@@ -1,9 +1,7 @@
:root {
--kpi-title-color: #494949;
}

@media (prefers-color-scheme: dark) {
:root {
&[data-theme="dark"] {
--kpi-title-color: #cdcdcd;
}
}
Expand Down
4 changes: 2 additions & 2 deletions ui/src/components/Player/index.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ import sha256 from 'crypto-js/sha256'
import { AUDIO_PRELOAD_ATTRIBUTE } from 'react-h5-audio-player/src/constants'
import { v4 as uuidv4 } from 'uuid'
import { Link } from 'react-router-dom'
import { getISODate, getPrettyDate } from '../../utils'
import { getImage, getISODate, getPrettyDate } from '../../utils'

import 'react-h5-audio-player/src/styles.scss'
import './styles.scss'
Expand Down Expand Up @@ -111,7 +111,7 @@ export default class Player extends React.Component<IProps> {
setMediaSessionMetadata() {
let navigator: any = window.navigator
let episode = this.props.episode
let image: string = episode.image || episode.feedImage
let image: string = getImage(episode)
if (episode && 'mediaSession' in window.navigator) {
// @ts-ignore
navigator.mediaSession.metadata = new MediaMetadata({
Expand Down
19 changes: 11 additions & 8 deletions ui/src/components/Player/styles.scss
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@
text-overflow: ellipsis;
margin-bottom: 5px;

> a {
a {
font-size: 16px;
font-family: var(--font-family);
color: var(--fg-main);
Expand Down Expand Up @@ -77,18 +77,21 @@
}
}
}
@media (prefers-color-scheme: dark) {
.rhap_container {
background-color: var(--bg-main);
}
.rhap_time {
color: var(--fg-main);
}
}
:root[data-theme="dark"] {
.rhap_container {
background-color: var(--bg-main);
}
.rhap_time {
color: var(--fg-main);
}
}

@media only screen and (max-width: 520px) {
.player-show-title p {
max-width: 350px;
}
.player-podcast-name {
max-width: 350px;
}
}
3 changes: 2 additions & 1 deletion ui/src/components/PodcastHeader/index.tsx
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
import * as React from 'react'
import Button from "../Button";

import Value from '../Value'
import NoImage from '../../../images/no-cover-art.png'
Expand Down Expand Up @@ -151,7 +152,7 @@ export default class PodcastHeader extends React.PureComponent<IProps, PodState>
: ""
}
{feedURL ?
<button onClick={this.copyClicked}>{ this.state.copyMessage }</button>
<Button small={true} onClick={this.copyClicked}>{ this.state.copyMessage }</Button>
: ""
}
</div>
Expand Down
5 changes: 2 additions & 3 deletions ui/src/components/PodcastHeader/styles.scss
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,8 @@
--category-bg-color: #f3f3f3;
--category-border-color: #cecece;
--cover-art-border-color: lighten(#d6d6d6, 0.2);
}

@media (prefers-color-scheme: dark) {
:root {
&[data-theme="dark"] {
--category-bg-color: #302d2d;
--category-border-color: #505050;
--cover-art-border-color: var(--border-color);
Expand All @@ -26,6 +24,7 @@
img {
height: 300px;
width: 300px;
object-fit: contain;
border-radius: 10px;
border: 1px solid var(--cover-art-border-color);
}
Expand Down
Loading

0 comments on commit bc65ff6

Please sign in to comment.