1
0
mirror of https://github.com/RSS-Bridge/rss-bridge.git synced 2025-04-23 15:06:53 +00:00
Commit Graph

105 Commits

Author SHA1 Message Date
Dag
ff49c9f731
fix(TwitterBridge): repair fetching of tweets by username ()
* feat: alpha version of new twitter bridge

* fix: refetch guest_token if expired

* fix: purge cache

* fix: safeguards

* fix

* fix: two notices

* fix

* fix: use factory to create cache

* fix: fail properly instead of die()
2023-05-10 21:45:44 +02:00
Dag
94ae098ef5
fix: various fixes ()
* improve twitch error message

* fix worldcosplay notice

* fix: add new video image to telegram

* fix: reuters

* fix: formula1

* twitter
2022-09-09 20:18:50 +02:00
Dag
ecb486794b
refactor: use static values for cache scope
This fixes a future problem when code is placed under a namespace because `get_class($bridge)` will then return e.g. `RssBridge\Bridge\TwitterBridge` instead of the the current value `TwitterBridge`.

Also a bit refactoring of `Configuration.php`.
2022-08-02 15:03:54 +02:00
Jan Tojnar
951092eef3
Fix coding style missed by phpbcf ()
$ composer require --dev friendsofphp/php-cs-fixer

$ echo >.php-cs-fixer.dist.php "<?php

$finder = PhpCsFixer\Finder::create()
    ->in(__DIR__);

$rules = [
    '@PSR12' => true,
    // '@PSR12:risky' => true,
    '@PHP74Migration' => true,
    // '@PHP74Migration:risky' => true,
    // buggy, duplicates existing comment sometimes
    'no_break_comment' => false,
    'array_syntax' => true,
    'lowercase_static_reference' => true,
    'visibility_required' => false,
    // Too much noise
    'binary_operator_spaces' => false,
    'heredoc_indentation' => false,
    'trailing_comma_in_multiline' => false,
];

$config = new PhpCsFixer\Config();

return $config
    ->setRules($rules)
    // ->setRiskyAllowed(true)
    ->setFinder($finder);

"

$ vendor/bin/php-cs-fixer --version
PHP CS Fixer 3.8.0 BerSzcz against war! by Fabien Potencier and Dariusz Ruminski.
PHP runtime: 8.1.7

$ vendor/bin/php-cs-fixer fix
$ rm .php-cs-fixer.cache
$ vendor/bin/php-cs-fixer fix
2022-07-08 13:00:52 +02:00
Jan Tojnar
d107f8ed30
Improve Factory variable names () 2022-07-06 12:14:04 +02:00
Dag
321ec7c8c1
refactor: move cache logic into the factory () 2022-07-05 13:20:01 +02:00
Dag
4f75591060
Reformat codebase v4 ()
Reformat code base to PSR12

Co-authored-by: rssbridge <noreply@github.com>
2022-07-01 15:10:30 +02:00
Dag
5076d09de6
refactor: prepare for PSR2 () 2022-06-24 18:29:35 +02:00
Dag
07927008eb
refactor: CacheFactory () 2022-06-22 18:29:28 +02:00
Dag
5d77d14f9d
feat: add retry logic to the http client ()
* refactor: extract http client

* feat: add retry logic to http client
2022-05-08 03:58:57 +02:00
arnd-s
0d305f1530
[TwitterBridge] Migration to API V1.1 () 2022-04-04 19:50:59 +02:00
Bocki
1a8d0babd1
[Multiple] Fix all exampleValues and required variables () 2022-03-24 11:59:34 +01:00
Eugene Molotov
73a5dd928a
[TwitterBridge] Don't decode HTML entities for feed content () 2022-02-24 00:28:29 +05:00
Eugene Molotov
2f10d2345a [TwitterBridge] Meet the new maintainer: arnd-s 2022-01-16 23:42:28 +05:00
arnd-s
02a8ae4c62
[TwitterBridge] Use Twitter API V1.1 guest/activate for requesting new guest tokens ()
Instead of searching inside base html page for the guest token, this patch instead uses the Twitter API V1.1 to acquire guest tokens
2022-01-16 07:59:02 +05:00
arnd-s
12ff697ab0
[TwitterBridge] Continue using existing guesttoken from cache, when requesting a new one failed () 2022-01-06 10:59:37 +05:00
triatic
35930ee4e4
[TwitterBridge] Increase guest token expiry time () 2021-12-18 14:54:18 +05:00
FiveFilters.org
76c38332ee
[TwitterBridge] Improve timeline processing for username mode () 2021-04-12 23:08:38 +05:00
FiveFilters.org
f927781750
[TwitterBridge] Add option to hide pinned tweet () 2021-01-10 13:50:06 +05:00
Derrick Lee
6b870f0c3e
[TwitterBridge] Fix username matching to be case insensitive with noretweet option () 2021-01-10 13:19:38 +05:00
Roman Remizov
b66026e241
[TwitterBridge] Add support for querying by list ID () 2020-11-10 11:12:02 +05:00
triatic
d3455dd18a
[TwitterBridge] Optimise regular expression code ()
* [TwitterBridge] Optimise regular expression code

Optimise regular expression search code so adding new URLs is cleaner
2020-10-05 12:07:39 +05:00
sarnd
01985b7af7
[TwitterBridge] URL to js file with apikey changed again () 2020-09-28 10:01:37 +05:00
Eugene Molotov
6c244f4d9b
[TwitterBridge] Skip advertisment tweets () 2020-09-11 11:44:28 +05:00
ronansalmon
25cff9c07b
[TwitterBridge] Convert plain text URLs into HTML hyperlinks () 2020-08-21 17:55:11 +05:00
triatic
73287f536b
[TwitterBridge] Add retweeter to retweeted tweets () 2020-08-20 10:00:27 +05:00
triatic
268ddf1382
[TwitterBridge] URL to js file with apikey changed ()
Fixes 
2020-08-12 10:32:34 +05:00
sarnd
c71fad4a4a
[TwitterBridge] URL to js file with apikey changed. ()
Twitter has changed URL scheme back again (see PR#1647 / commit 78298385d0)

This patch will try both URL schemes now and throw a specific error when neither works
2020-08-06 10:22:17 +05:00
Eugene Molotov
5be251a66e
[TwitterBridge] Fetch latest tweets on hashtag or keyword query () 2020-08-02 19:40:41 +05:00
triatic
f5916a2f74
[TwitterBridge] apikey fetched every time ()
The apikey is fetched every time because $data is not an array. Update the condition to expire the api key at the same time as the guest token.
2020-07-30 09:54:16 +05:00
somini
78facbcb83
[TwitterBridge] Fix noretweet for users ()
This also removes spurious retweets.
2020-07-26 11:26:39 +05:00
triatic
25698d182c [TwitterBridge] Remove unused variable 2020-07-24 13:13:21 +05:00
sarnd
78298385d0
[TwitterBridge] guest token is returned via body again. ()
* [TwitterBridge] guest token is returned via body again. This change will try to search fot token inside header and fallback to body

* Twitter changed the URL scheme for the API
2020-07-24 12:52:27 +05:00
sarnd
e87b868307
[TwitterBridge] Fix issue @<twitter_user> failed with error 429 ()
* [TwitterBridge] Fix issue  @<twitter_user> failed with error 429
2020-06-25 12:21:48 +02:00
triatic
23c61f5f84
[TwitterBridge] Expire guest token by time ()
* [TwitterBridge] Expire guest token by time

In addition to fetching a new guest token after 100 uses, also expire token after 5 minutes (configurable).
2020-06-23 15:14:50 +02:00
somini
22a01f1093
[Twitter] Fix Twitter bridge images and add other media types ()
* Keep old URI structure

Use the username, not the user ID.

* Fix Twitter bridge images

Credit to @kinoushe

See https://github.com/RSS-Bridge/rss-bridge/issues/1562#issuecomment-639393175

* Include Videos and "Animated GIF" as twit enclosures

Credit to @kinoushe for digging into the API docs.

https://github.com/RSS-Bridge/rss-bridge/issues/1562#issuecomment-640320688

* Calculate the highest bitrate video

Include that on the enclosure.

* Appease linter

* Appease linter, again

* Remove surrounding link from videos

Add it on a smaller link besides it.

See
https://github.com/RSS-Bridge/rss-bridge/pull/1595#issuecomment-640989208

* Include video poster on the enclosures.
2020-06-10 22:39:36 +02:00
Lyra
124631df73 [TwitterBridge] Fix caching policy, usernames as well as images 2020-06-08 11:18:24 +02:00
Lyra
06891ae35f [TwitterBridge] Fix the bridge using a brand new API 2020-06-05 10:17:53 +02:00
Eugene Molotov
830f57f607
[TwitterBridge] Use IE's user-agent ()
Twitter will return pages with legacy design and frontend code, which bridge can deal with
2020-01-31 14:36:25 +01:00
triatic
50c971d545 [TwitterBridge] Enable cookies with curl ()
* [TwitterBridge] Enable cookies with curl

Enable cookies in curl, or fall back to `file_get_contents` if in CLI mode with no curl root certificates.
2019-09-12 16:14:48 +02:00
triatic
2bb9480555 [TwitterBridge] Get cookies before sending request ()
* [TwitterBridge] Get cookies before sending request

Twitter now requires cookies to be set before requesting a page. This will fetch the cookies and send them to `getSimpleHTMLDOM()`.

* Formatting fixes
2019-07-26 10:36:59 +02:00
logmanoriginal
b27487ace0 [TwitterBridge] Fix detection of retweets on lists
References 
2019-06-12 18:27:35 +02:00
logmanoriginal
d005acca83 [TwitterBridge] Add extensive description to keyword search query
References 
2019-06-11 21:53:22 +02:00
Joseph
d34411137f [TwitterBridge] Display all images from a tweet () 2019-06-09 17:24:40 +02:00
logmanoriginal
6c4098d655 Revert "all: Use ->remove() instead of ->outertext = ''"
This reverts commit 052844f5e1.

There is a bug in ->remove() that causes the parser to incorrectly
identify elements in the DOM tree that shouldn't exist anymore.

References 
2019-06-02 13:06:16 +02:00
logmanoriginal
052844f5e1 all: Use ->remove() instead of ->outertext = ''
simplehtmldom 1.9 introduced new functions to recursively remove
nodes from the DOM. This allows removing elements without the need
to re-load the document by using $html->load($html->save()), which
is very inefficient.

Find more information about remove() at
https://simplehtmldom.sourceforge.io/docs/1.9/api/simple_html_dom_node/remove/
2019-06-01 21:29:57 +02:00
triatic
25593d9c18 [TwitterBridge] Append username of retweeter to author ()
Append username of retweeter to author. Useful when viewing all unread tweets in an RSS reader which are not sorted within username folders.
2019-02-04 14:56:07 +01:00
logmanoriginal
bb2329fa3a [TwitterBridge] Add option to disable image scaling in feeds
Images in Twitter feeds are currently being scaled by adding ':orig'
(original image) and ':thumb' (thumbnail) to image URIs in the feed.

This can cause issues with feed readers that don't handle colons in
URIs correctly.

Image scaling can now be disabled by adding '&noimgscaling=on' to the
query. This parameter is optional to stay compatible to existing feeds.

References 
2018-12-12 17:00:12 +01:00
Roliga
49da67cb33 core: Automatically select a bridge based on a URL ()
* core: Add bridge parameter auto detection

This adds a new 'detect' action which accepts a URL from which an
appropriate bridge is selected and relevant parameters are extracted.
The user is then automatically redirected to the selected bridge.

For example to get a feed from: https://twitter.com/search?q=%23rss-bridge
we could send a request to:
'/?action=detect&format=Atom&url=twitter.com/search%3Fq%3D%2523rss-bridge'
which would redirect to:
'/?action=display&q=%23rss-bridge&bridge=Twitter&format=Atom'.

This auto detection happens on a per-bridge basis, so a new function
'detectParameters' is added to BridgeInterface which bridges may implement.
It takes a URL for an argument and returns a list of parameters that were
extracted, or null if the URL isn't relevant for the bridge.

* [TwitterBridge] Add parameter auto detection

* [BridgeAbstract] Add generic parameter detection

This adds generic "paramater detection" for bridges that don't have any
parameters defined. If the queried URL matches the URI defined in the
bridge (ignoring https://, www. and trailing /) an emtpy list of parameters is
returned.
2018-11-26 18:05:40 +01:00
triatic
e5a6baab96 [TwitterBridge] Decode HTML entities ()
Removes duplicate encoding like &amp;quot; (should be &quot;).
2018-11-15 22:00:01 +01:00