Compare commits

...

6 Commits
0.6.1 ... 0.7.0

Author SHA1 Message Date
Nicolai Ort 4ee8de47cf 🚀RELEASE 0.7.0
continuous-integration/drone/push Build is passing Details
2022-01-12 18:04:27 +01:00
Nicolai Ort 8abaabbe51
Added the new providers to the readme 2022-01-12 18:04:14 +01:00
Nicolai Ort 0fa043f0df
Now recognizing r/ pattern
continuous-integration/drone/push Build is passing Details
2022-01-12 17:54:50 +01:00
Nicolai Ort 7211133aba
Implemented reddit name recognition 2022-01-12 17:51:21 +01:00
Nicolai Ort d957ca52ea
Removed yarn lock copy
continuous-integration/drone/push Build is passing Details
2022-01-12 17:40:29 +01:00
Nicolai Ort 231d8ca7ee
Push w/o lockfile
continuous-integration/drone/push Build is failing Details
2022-01-12 17:33:48 +01:00
6 changed files with 44 additions and 3474 deletions

View File

@ -2,21 +2,32 @@
All notable changes to this project will be documented in this file. Dates are displayed in UTC. All notable changes to this project will be documented in this file. Dates are displayed in UTC.
#### [0.7.0](https://git.odit.services/kauft.es/linkylinky/compare/0.6.1...0.7.0)
- Push w/o lockfile [`231d8ca`](https://git.odit.services/kauft.es/linkylinky/commit/231d8ca7ee0da402322afd3ac8ddce58e14943c1)
- Added the new providers to the readme [`8abaabb`](https://git.odit.services/kauft.es/linkylinky/commit/8abaabbe5170372ca35ff469cee25c65a8f3d729)
- Implemented reddit name recognition [`7211133`](https://git.odit.services/kauft.es/linkylinky/commit/7211133aba22315919443d5314594b7ec027c02b)
- Now recognizing r/ pattern [`0fa043f`](https://git.odit.services/kauft.es/linkylinky/commit/0fa043f0dfbae8b4095375b39c220a901cc6051f)
- Removed yarn lock copy [`d957ca5`](https://git.odit.services/kauft.es/linkylinky/commit/d957ca52ea2332f6cd1c5608467be6245f5082b8)
#### [0.6.1](https://git.odit.services/kauft.es/linkylinky/compare/0.6.0...0.6.1) #### [0.6.1](https://git.odit.services/kauft.es/linkylinky/compare/0.6.0...0.6.1)
> 12 January 2022
- Working clientside stuff [`#3`](https://git.odit.services/kauft.es/linkylinky/issues/3) - Working clientside stuff [`#3`](https://git.odit.services/kauft.es/linkylinky/issues/3)
- 🚀RELEASE 0.6.1 [`4a476e9`](https://git.odit.services/kauft.es/linkylinky/commit/4a476e93af43c8920448fcfeff3f13edc0bc0681)
- Merge pull request 'Update dependency fastify-jwt to v4' (#12) from renovate/fastify-jwt-4.x into main [`3bfcd64`](https://git.odit.services/kauft.es/linkylinky/commit/3bfcd645890253813cc2e4c740f67d577682934b) - Merge pull request 'Update dependency fastify-jwt to v4' (#12) from renovate/fastify-jwt-4.x into main [`3bfcd64`](https://git.odit.services/kauft.es/linkylinky/commit/3bfcd645890253813cc2e4c740f67d577682934b)
- Merge pull request 'Update registry.odit.services/hub/library/node Docker tag to v17' (#11) from renovate/registry.odit.services-hub-library-node-17.x into main [`d17825c`](https://git.odit.services/kauft.es/linkylinky/commit/d17825cabf2d46d040bd33a3d1ad5a9d0bccfbe5) - Merge pull request 'Update registry.odit.services/hub/library/node Docker tag to v17' (#11) from renovate/registry.odit.services-hub-library-node-17.x into main [`d17825c`](https://git.odit.services/kauft.es/linkylinky/commit/d17825cabf2d46d040bd33a3d1ad5a9d0bccfbe5)
- Merge pull request 'Update dependency dotenv to v11' (#13) from renovate/dotenv-11.x into main [`6205151`](https://git.odit.services/kauft.es/linkylinky/commit/6205151d53b374d890276d294d0abc6e6114abe5) - Merge pull request 'Update dependency dotenv to v11' (#13) from renovate/dotenv-11.x into main [`6205151`](https://git.odit.services/kauft.es/linkylinky/commit/6205151d53b374d890276d294d0abc6e6114abe5)
- Update dependency knex to ^0.95.0 [`2b93f3e`](https://git.odit.services/kauft.es/linkylinky/commit/2b93f3ea8a9b2f4be73829fb1041e6233d81fa91) - Update dependency knex to ^0.95.0 [`2b93f3e`](https://git.odit.services/kauft.es/linkylinky/commit/2b93f3ea8a9b2f4be73829fb1041e6233d81fa91)
- Preleminary emoji support [`3ca5f6b`](https://git.odit.services/kauft.es/linkylinky/commit/3ca5f6b3b468ca739bc77e1d9b751625e03f300d) - Preleminary emoji support [`3ca5f6b`](https://git.odit.services/kauft.es/linkylinky/commit/3ca5f6b3b468ca739bc77e1d9b751625e03f300d)
- Update dependency fastify-jwt to v4 [`575685f`](https://git.odit.services/kauft.es/linkylinky/commit/575685f24d1d0a2c0574741e540f448642990cd5) - Update dependency fastify-jwt to v4 [`575685f`](https://git.odit.services/kauft.es/linkylinky/commit/575685f24d1d0a2c0574741e540f448642990cd5)
- Added 'clientside' flag to getters and setters [`11bd1b4`](https://git.odit.services/kauft.es/linkylinky/commit/11bd1b4f1f4d079b3ca047472da9da34fb64732d)
- Update dependency dotenv to v11 [`4861ca7`](https://git.odit.services/kauft.es/linkylinky/commit/4861ca7f3e3ed3e62ee774d59cb13a38d5e5e1e1) - Update dependency dotenv to v11 [`4861ca7`](https://git.odit.services/kauft.es/linkylinky/commit/4861ca7f3e3ed3e62ee774d59cb13a38d5e5e1e1)
- Update registry.odit.services/hub/library/node Docker tag to v17 [`0e9f7a5`](https://git.odit.services/kauft.es/linkylinky/commit/0e9f7a526ce5188e964e7beb78a5fb63870b473f) - Update registry.odit.services/hub/library/node Docker tag to v17 [`0e9f7a5`](https://git.odit.services/kauft.es/linkylinky/commit/0e9f7a526ce5188e964e7beb78a5fb63870b473f)
- Enabled dep dashboard [`efb11f6`](https://git.odit.services/kauft.es/linkylinky/commit/efb11f6047e37901e20c613393d435f869e8a1f9) - Enabled dep dashboard [`efb11f6`](https://git.odit.services/kauft.es/linkylinky/commit/efb11f6047e37901e20c613393d435f869e8a1f9)
- Merge pull request 'Update dependency knex to ^0.95.0' (#5) from renovate/knex-0.x into main [`e95ca80`](https://git.odit.services/kauft.es/linkylinky/commit/e95ca8045af6afcbc9dfcc9976d107a231d12953) - Merge pull request 'Update dependency knex to ^0.95.0' (#5) from renovate/knex-0.x into main [`e95ca80`](https://git.odit.services/kauft.es/linkylinky/commit/e95ca8045af6afcbc9dfcc9976d107a231d12953)
- Merge pull request 'Configure Renovate' (#4) from renovate/configure into main [`2a7a32f`](https://git.odit.services/kauft.es/linkylinky/commit/2a7a32fda615fa01751deffadafa6df1a5d0fede) - Merge pull request 'Configure Renovate' (#4) from renovate/configure into main [`2a7a32f`](https://git.odit.services/kauft.es/linkylinky/commit/2a7a32fda615fa01751deffadafa6df1a5d0fede)
- Added 'clientside' flag to getters and setters [`11bd1b4`](https://git.odit.services/kauft.es/linkylinky/commit/11bd1b4f1f4d079b3ca047472da9da34fb64732d)
- Added migration for clientside redirects [`e321408`](https://git.odit.services/kauft.es/linkylinky/commit/e3214084f6dbf3e1595c54a9594e6d5f12323991) - Added migration for clientside redirects [`e321408`](https://git.odit.services/kauft.es/linkylinky/commit/e3214084f6dbf3e1595c54a9594e6d5f12323991)
- Add renovate.json [`d7428af`](https://git.odit.services/kauft.es/linkylinky/commit/d7428af1d81c820fdca7220959485f361956b86e) - Add renovate.json [`d7428af`](https://git.odit.services/kauft.es/linkylinky/commit/d7428af1d81c820fdca7220959485f361956b86e)

View File

@ -1,7 +1,7 @@
FROM registry.odit.services/hub/library/node:17.0.1-alpine3.14 FROM registry.odit.services/hub/library/node:17.0.1-alpine3.14
WORKDIR /app WORKDIR /app
COPY package.json . COPY package.json .
COPY yarn.lock . # COPY yarn.lock .
RUN yarn --production --frozen-lockfile RUN yarn --production --frozen-lockfile
COPY migrations ./migrations COPY migrations ./migrations
COPY src ./src COPY src ./src

View File

@ -4,6 +4,20 @@
<h3 align="center">A small url shortener, originaly developed for kauft.es</h3> <h3 align="center">A small url shortener, originaly developed for kauft.es</h3>
</p> </p>
## Features
* Url shortinging to 18-byte hex ids
* Special shortening "providers" for well-used services
### Provider patterns
| Provider | Pattern | Resolves to | Notes |
| - | - | - | - |
| YouTube (Video) | `/yt/id` | `https://youtu.be/id` | None |
| YouTube (Playlist) | `/ytpl/id` | `https://youtube.com/playlist?list=id` | Remember: Private playlists will result in user-side errors |
| Amazon | `/a/id` | `https://amazon.de/dp/id` | Recognizes all kind of cursed amazon urls (+smile and others) |
| eBay | `/e/id` | `https://ebay.de/itm/` | Only tested with German eBay |
| Reddit | `/r/id` | `https://redd.it/` | Powered by the awesome work of u/TheAppleFreak https://kauf.es/r/4vaqiw |
## Dev Setup 🛠 ## Dev Setup 🛠
> Runs on port 3000 > Runs on port 3000

View File

@ -1,6 +1,6 @@
{ {
"name": "@odit/shortener-backend", "name": "@odit/shortener-backend",
"version": "0.6.1", "version": "0.7.0",
"main": "index.js", "main": "index.js",
"license": "MIT", "license": "MIT",
"private": false, "private": false,

View File

@ -96,6 +96,12 @@ fastify.get('/e/:id', async (req, res) => {
await knex('visits').insert({ shortcode: req.params.id, provider: 'e' }); await knex('visits').insert({ shortcode: req.params.id, provider: 'e' });
}) })
//Automagic reddit redirects on /r/
fastify.get('/r/:id', async (req, res) => {
res.redirect(302, `https://redd.it/${req.params.id}`)
await knex('visits').insert({ shortcode: req.params.id, provider: 'r' });
})
//Normal shorturls //Normal shorturls
fastify.get('/:shortcode', async (req, res) => { fastify.get('/:shortcode', async (req, res) => {
const shortcode = req.params.shortcode; const shortcode = req.params.shortcode;
@ -437,6 +443,16 @@ function checkKnownProviders(target) {
target target
} }
} }
const redditID = target.match(/(((((?:https?:)?\/\/)((?!about\.)[\w-]+?\.)?([rc]edd(?:it\.com|\.it)))(?!\/(?:blog|about|code|advertising|jobs|rules|wiki|contact|buttons|gold|page|help|prefs|user|message|widget)\b)((?:\/r\/[\w-]+\b(?<!\/pcmasterrace))|(?:\/tb))?(\/comments)??(\/\w{2,7}\b(?<!\/46ijrl)(?<!\/wiki))((?:(?!\))\S)*)))/);
if (redditID[9]) {
const shortcode = `r${redditID[9]}`
return {
url: `${config.getBaseUrl()}/${shortcode}`,
shortcode,
target
}
}
return null; return null;
} }

3471
yarn.lock

File diff suppressed because it is too large Load Diff