mirror of
https://codeberg.org/Bazsalanszky/Infinity-For-Lemmy.git
synced 2024-11-10 12:47:26 +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_IMAGE_PATTERN = "/\\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 STREAMABLE_PATTERN = "/\\w+/?";
|
||||
|
||||
@ -206,7 +206,17 @@ public class LinkResolverActivity extends AppCompatActivity {
|
||||
deepLinkError(uri);
|
||||
}
|
||||
} 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.putExtra(WikiActivity.EXTRA_SUBREDDIT_NAME, segments.get(1));
|
||||
intent.putExtra(WikiActivity.EXTRA_WIKI_PATH, wikiPage);
|
||||
|
Loading…
Reference in New Issue
Block a user