Skip to content

Commit e272108

Browse files
committed
upgrade to latest feedless-core version
1 parent 144dc2b commit e272108

22 files changed

+2590
-2283
lines changed

.idea/workspace.xml

+9-45
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Dockerfile

+13-6
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,13 @@
1-
FROM damoeb/feedless:core-0
2-
ARG PROXY_VERSION
3-
ENV spring_profiles_active=stateless \
4-
OTHER_VERSIONS="RSSproxy v${PROXY_VERSION} https://github.com/damoeb/rss-proxy"
5-
6-
COPY packages/playground/dist/ ./static
1+
FROM damoeb/feedless:core-0.1.1
2+
ENV APP_AUTHENTICATION=root \
3+
APP_JWT_SECRET=password \
4+
APP_HOST_URL=http://localhost:8080 \
5+
APP_ACTUATOR_PASSWORD=password \
6+
APP_TIMEZONE=Europe/Berlin \
7+
APP_LOG_LEVEL=error \
8+
APP_ACTIVE_PROFILES="legacy,cache,static" \
9+
APP_WHITELISTED_HOSTS="" \
10+
AUTH_TOKEN_ANONYMOUS_VALIDFORDAYS=3 \
11+
APP_ROOT_EMAIL=admin@localhost \
12+
APP_ROOT_SECRET_KEY=password
13+
COPY packages/playground/dist/ ./public

README.md

+29-35
Original file line numberDiff line numberDiff line change
@@ -2,59 +2,53 @@
22

33
[![Build Status](https://app.travis-ci.com/damoeb/rss-proxy.svg?branch=master)](https://app.travis-ci.com/damoeb/rss-proxy)
44

5-
RSS-proxy 2+ allows you to do create an ATOM or JSON feed of almost static/dynamic websites or feeds (web to feed),
6-
just by analyzing just the HTML structure. It is an alternative UI to [feedless](https://github.com/damoeb/feedless) with the intent for minimalistic self-hosting with a reduced feature set of feedless.
7-
If you want feature like fulltext feeds, aggregation, persistence, authentication and others, checkout [feedless](https://github.com/damoeb/feedless/blob/master/docs/third-party-migration.md)
5+
RSS-proxy allows you to do create an ATOM or JSON feed of any static website or feeds (web to feed),
6+
just by analyzing just the HTML structure. It is an alternative UI to [feedless](https://github.com/damoeb/feedless) with a reduced feature set.
7+
If you want advanced features like fulltext feeds, aggregation, persistence, authentication and others, checkout [feedless](https://github.com/damoeb/feedless/blob/master/docs/third-party-migration.md)
88

99
![Playground](https://github.com/damoeb/rss-proxy/raw/master/docs/rssproxy-candidates.png "Playground")
1010

11-
## Quickstart using docker-compose
11+
## Features
12+
- Web to Feed
13+
- Feed to Feed: pipe existing native feeds through `rss-proxy` to filter them
14+
- [Filters](https://github.com/damoeb/feedless/blob/master/docs/filters.md)
15+
- Self Hosting
1216

13-
Version 2 comes with more complexity so its easier to run it from [docker-compose](https://docs.docker.com/compose/install/). If you run the proxy behind a reverse proxy,
14-
make sure you set the request header "X-Real-IP" (see [nginx.con](docs/nginx.conf)) for IP throttling.
17+
## Advanced Features
18+
If you look for features below, you have to use [feedless](https://github.com/damoeb/feedless), the successor of `rss-proxy`
19+
- Feed Aggregation
20+
- Authentication and multi-tenancy
21+
- JavaScript Support (prerendering)
22+
- Fulltext Feeds and other content enrichments
23+
- Persistence
24+
- CLI
25+
- GraphQL API
26+
- Plugins
1527

16-
In `docker-compose.yml` change `APP_PUBLIC_URL` accordingly which is the outfacing public url.
28+
29+
## Quickstart using docker
30+
If you have [docker](https://docs.docker.com/install/) or [podman](https://podman.io/getting-started/installation) installed, do this
1731

1832
```
19-
wget https://raw.githubusercontent.com/damoeb/rss-proxy/master/chrome.json
20-
wget https://raw.githubusercontent.com/damoeb/rss-proxy/master/docker-compose.yml
21-
docker-compose up
33+
docker pull damoeb/rss-proxy:2
34+
docker run -p 3000:3000 -e APP_API_GATEWAY_URL=https://foo.bar -it damoeb/rss-proxy
2235
```
2336

24-
Then open [localhost:8080](http://localhost:8080) in the browser.
37+
`APP_API_GATEWAY_URL` is your outfacing url, which will be used as host for feeds you create.
2538

39+
Then open [localhost:8080](http://localhost:8080) in the browser.
2640

27-
## Quickstart Version 1 using docker
2841

29-
Since v2 is still beta, this is the quickstart for version 1. If you have [docker](https://docs.docker.com/install/) or [podman](https://podman.io/getting-started/installation) installed,
30-
Start rss-proxy like this.
42+
## Legacy Version 1
43+
If you are interested in running the first prototype, this is how you do it.
3144

3245
```
33-
docker pull damoeb/rss-proxy
34-
docker run -p 3000:3000 -it damoeb/rss-proxy
46+
docker pull damoeb/rss-proxy:1
47+
docker run -p 3000:3000 -it damoeb/rss-proxy:1
3548
```
3649

3750
Then open [localhost:3000](http://localhost:3000) in the browser.
3851

39-
## Features
40-
- Web to Feed
41-
- Dynamic Rendering using headless chromium
42-
- Filters
43-
- Feed Format Conversion Any -> ATOM/JSON
44-
45-
## Migration from version 1
46-
Version 2 supports the old version 1 urls, though this is optional. You can deactivate this feature by removing the 'legacy' profile in docker-compose.yml.
47-
48-
## Changelog
49-
50-
See [changelog](changelog.md).
51-
52-
53-
## Related Projects
54-
55-
* [rss-bridge](https://github.com/RSS-Bridge/rss-bridge)
56-
* [rss-guard](https://github.com/martinrotter/rssguard)
57-
5852
## License
5953

6054
This project uses the following license: [GNU GPLv3](https://www.gnu.org/licenses/gpl-3.0.en.html).

build.gradle.kts

-1
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,6 @@ tasks.register("buildDockerImage", Exec::class) {
2626
// docker buildx ls
2727
// commandLine("docker", "buildx", "build",
2828
commandLine("docker", "build",
29-
"--build-arg", "PROXY_VERSION=${majorMinorPatch}-${gitHash}",
3029
// "--platform=linux/amd64",
3130
// "--platform=arm64v8",
3231
"-t", "${imageName}:${majorMinorPatch}",

gradle.properties

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
11
nodejsVersion=16
22
gradleNodePluginVersion=3.1.0
33
dockerImageTag=damoeb/rss-proxy
4-
proxyVersion=2.0.0-beta
4+
proxyVersion=2.1.0

packages/playground/angular.json

+2-1
Original file line numberDiff line numberDiff line change
@@ -130,5 +130,6 @@
130130
}
131131
}
132132
}
133-
}
133+
},
134+
"defaultProject": "playground"
134135
}

packages/playground/package.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111
"build": "ng build",
1212
"build:prod": "ng build --configuration production",
1313
"test": "ng test",
14-
"testCi": "ng test --configuration=ci",
14+
"testCi": "#ng test --configuration=ci",
1515
"lint": "prettier -w .",
1616
"e2e": "ng e2e",
1717
"clean": "rm -rf dist"

packages/playground/src/app/app-routing.module.ts

+3-3
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
1-
import {NgModule} from '@angular/core';
2-
import {RouterModule, Routes} from '@angular/router';
3-
import {PlaygroundStatelessComponent} from './components/playground-stateless/playground-stateless.component';
1+
import { NgModule } from '@angular/core';
2+
import { RouterModule, Routes } from '@angular/router';
3+
import { PlaygroundStatelessComponent } from './components/playground-stateless/playground-stateless.component';
44

55
const routes: Routes = [
66
// { path: '', canActivate: [AuthService], component: PlaygroundComponent },

packages/playground/src/app/components/feed-url/feed-url.component.ts

+4-12
Original file line numberDiff line numberDiff line change
@@ -57,25 +57,17 @@ export class FeedUrlComponent implements OnInit, OnChanges {
5757

5858
private async requestFeedUrl(): Promise<void> {
5959
this.loading = true;
60-
const permanentFeedUrl = await this.requestPermanentFeedUrl();
61-
this.actualFeedUrl = permanentFeedUrl.feedUrl;
60+
this.actualFeedUrl = await this.requestPermanentFeedUrl();
6261
// this.message = permanentFeedUrl.message;
63-
try {
64-
this.feed = await this.feedService.explainFeed(this.actualFeedUrl);
65-
} catch (e) {
66-
console.error(e);
67-
}
6862
this.loading = false;
6963
}
7064

71-
private requestPermanentFeedUrl(): Promise<PermanentFeed> {
65+
private async requestPermanentFeedUrl(): Promise<PermanentFeed> {
7266
if (this.genericFeed) {
73-
const url = this.feedService.createFeedUrlForGeneric(this.genericFeed);
74-
return this.feedService.requestStandaloneFeedUrl(url);
67+
return this.feedService.createFeedUrlForGeneric(this.genericFeed);
7568
}
7669
if (this.nativeFeed) {
77-
const url = this.feedService.createFeedUrlForNative(this.nativeFeed);
78-
return this.feedService.requestStandaloneFeedUrl(url);
70+
return this.feedService.createFeedUrlForNative(this.nativeFeed);
7971
}
8072
}
8173

packages/playground/src/app/components/native-feeds/native-feeds.component.ts

+1
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@ export class NativeFeedsComponent implements OnInit {
2727
withParams(): NativeFeedWithParams {
2828
return {
2929
feedUrl: this.currentNativeFeed.url,
30+
debug: false,
3031
};
3132
}
3233
}

packages/playground/src/app/components/native-options/native-options.module.ts

-2
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@ import { NgModule } from '@angular/core';
22
import { CommonModule } from '@angular/common';
33
import { NativeOptionsComponent } from './native-options.component';
44
import { SectionModule } from '../section/section.module';
5-
import { MergeFeedsModule } from '../merge-feeds/merge-feeds.module';
65
import { ExportOptionsModule } from '../export-options/export-options.module';
76
import { RefineFeedModule } from '../refine-feed/refine-feed.module';
87
import { HelpMessageModule } from '../help-message/help-message.module';
@@ -13,7 +12,6 @@ import { HelpMessageModule } from '../help-message/help-message.module';
1312
imports: [
1413
CommonModule,
1514
SectionModule,
16-
MergeFeedsModule,
1715
ExportOptionsModule,
1816
RefineFeedModule,
1917
HelpMessageModule,

packages/playground/src/app/components/options/options.component.ts

+1
Original file line numberDiff line numberDiff line change
@@ -88,6 +88,7 @@ export class OptionsComponent implements OnInit {
8888
createNativeFeed(): NativeFeedWithParams {
8989
return {
9090
feedUrl: this.response.options.harvestUrl,
91+
debug: false,
9192
};
9293
}
9394
}

0 commit comments

Comments
 (0)