mirror of
https://codeberg.org/Bazsalanszky/Infinity-For-Lemmy.git
synced 2025-01-28 10:34:44 +01:00
Improve wiki link handling (#1184)
* handle wiki links with dashes and index wiki page * properly handle w vs wiki and links with wiki in it twice * remove beginning and end of line tokens from wiki regex * optimize wiki regex
This commit is contained in:
parent
0cab9663d4
commit
28ca5e6bbe
@ -50,7 +50,7 @@ public class LinkResolverActivity extends AppCompatActivity {
|
|||||||
private static final String IMGUR_ALBUM_PATTERN = "/(album|a)/\\w+/?";
|
private static final String IMGUR_ALBUM_PATTERN = "/(album|a)/\\w+/?";
|
||||||
private static final String IMGUR_IMAGE_PATTERN = "/\\w+/?";
|
private static final String IMGUR_IMAGE_PATTERN = "/\\w+/?";
|
||||||
private static final String RPAN_BROADCAST_PATTERN = "/rpan/r/[\\w-]+/\\w+/?\\w+/?";
|
private static final String RPAN_BROADCAST_PATTERN = "/rpan/r/[\\w-]+/\\w+/?\\w+/?";
|
||||||
private static final String WIKI_PATTERN = "/[rR]/[\\w-]+/(wiki|w)?(?:/\\w+)+";
|
private static final String WIKI_PATTERN = "/[rR]/[\\w-]+/(wiki|w)(?:/[\\w-]+)*";
|
||||||
private static final String GOOGLE_AMP_PATTERN = "/amp/s/amp.reddit.com/.*";
|
private static final String GOOGLE_AMP_PATTERN = "/amp/s/amp.reddit.com/.*";
|
||||||
private static final String STREAMABLE_PATTERN = "/\\w+/?";
|
private static final String STREAMABLE_PATTERN = "/\\w+/?";
|
||||||
|
|
||||||
@ -206,7 +206,17 @@ public class LinkResolverActivity extends AppCompatActivity {
|
|||||||
deepLinkError(uri);
|
deepLinkError(uri);
|
||||||
}
|
}
|
||||||
} else if (path.matches(WIKI_PATTERN)) {
|
} else if (path.matches(WIKI_PATTERN)) {
|
||||||
final String wikiPage = path.substring(path.lastIndexOf("/wiki/") + 6);
|
String[] pathSegments = path.split("/");
|
||||||
|
String wikiPage;
|
||||||
|
if (pathSegments.length == 4) {
|
||||||
|
wikiPage = "index";
|
||||||
|
} else {
|
||||||
|
int lengthThroughWiki = 0;
|
||||||
|
for (int i = 1; i <= 3; ++i) {
|
||||||
|
lengthThroughWiki += pathSegments[i].length() + 1;
|
||||||
|
}
|
||||||
|
wikiPage = path.substring(lengthThroughWiki);
|
||||||
|
}
|
||||||
Intent intent = new Intent(this, WikiActivity.class);
|
Intent intent = new Intent(this, WikiActivity.class);
|
||||||
intent.putExtra(WikiActivity.EXTRA_SUBREDDIT_NAME, segments.get(1));
|
intent.putExtra(WikiActivity.EXTRA_SUBREDDIT_NAME, segments.get(1));
|
||||||
intent.putExtra(WikiActivity.EXTRA_WIKI_PATH, wikiPage);
|
intent.putExtra(WikiActivity.EXTRA_WIKI_PATH, wikiPage);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user