1
0
mirror of https://github.com/ppy/osu.git synced 2024-11-12 05:27:40 +08:00
Commit Graph

909 Commits

Author SHA1 Message Date
Bartłomiej Dach
661dfbefaf Change containment check to overlap
Due to scenarios wherein a formatted link ended up as part of a larger
raw link after parsing, change the containment check to an overlap check
and add appropriate tests for these edge cases.
2019-10-25 00:42:58 +02:00
Bartłomiej Dach
cbd99cc767 Resolve link-in-link edge case
Testing with #6542 surfaced a crash scenario, caused by formatted links
that had URLs in the display text, for example

    [mean example - https://osu.ppy.sh](https://osu.ppy.sh)

In that case the outer Markdown link would get picked up once, and then
reduced to the link text when looking for other links, leading to it
being picked up again the second time when the raw link is found.

Add a check in the raw link parsing path that ensures that the found
URL is not a part of a bigger, pre-existing link.
2019-10-24 15:52:55 +02:00
Bartłomiej Dach
24b7160522 Add support for parsing Markdown inline links
Extend the Markdown parsing regex to allow parsing so-called inline
links. Within the parenthesis () part of the Markdown URL syntax,
introduce a new capturing group:

    (
      \s+              // whitespace between actual URL and inline title
      (?<title>        // start of "title" named group
        ""             // opening double quote (doubled inside @ string)
        (
          [^""]        // any character but a double quote
          |            // or
          (?<=\\)      // the next character should be preceded by a \
          ""           // a double quote
        )*             // zero or more times
        ""             // closing double quote
      )
    )?                 // the whole group is optional

This allows for parsing the inline links as-provided by web. Correctness
is displayed by the passing tests.
2019-10-24 15:52:55 +02:00
Dean Herbert
40c202c394
Merge branch 'master' into comments-vote-pill 2019-10-23 15:41:54 +09:00
Dean Herbert
c3375071ad Fix formatting issue 2019-10-23 00:26:47 +09:00
Dean Herbert
e9aa7f3218 Subclass and use yellow for stand-alone chat display 2019-10-23 00:24:19 +09:00
Andrei Zavatski
bb7af1e39c Fix some margin/padding issues 2019-10-22 01:45:04 +03:00
Andrei Zavatski
d19041fa53 Implement DaySeparator class 2019-10-22 01:30:37 +03:00
Andrei Zavatski
9ee63a8c1a Apply suggested changes 2019-10-17 16:28:32 +03:00
Andrei Zavatski
42cd4107a0 Implement CommentVoteRequest and adjust UI 2019-10-17 15:04:30 +03:00
Andrei Zavatski
38dcd42d08 Parse voted comments 2019-10-17 12:35:12 +03:00
Dean Herbert
4f356f3aeb
Merge branch 'master' into favourite-beatmap 2019-10-16 18:22:09 +09:00
Andrei Zavatski
96e31b9cca Add support for deleted comments with message 2019-10-15 12:07:01 +03:00
Andrei Zavatski
eb5dad08aa Remove initial filed 2019-10-15 11:25:58 +03:00
Andrei Zavatski
3c714dc013 APICommentsController -> CommentBundle 2019-10-15 11:20:06 +03:00
Andrei Zavatski
ad32d66365 CI fix 2019-10-15 01:10:23 +03:00
Andrei Zavatski
0fd6b0c852 Use linq expression to count deleted comments 2019-10-15 00:55:33 +03:00
Andrei Zavatski
09621f066e Childs -> Children 2019-10-15 00:32:21 +03:00
Andrei Zavatski
0676c880b5 Simplify IsTopLevel and IsDeleted properties 2019-10-15 00:26:31 +03:00
Andrei Zavatski
d4843285db CI fixes 2019-10-14 17:33:14 +03:00
Andrei Zavatski
a4ffd4798d Fix escaped html strings not being unescaped 2019-10-14 17:02:48 +03:00
Andrei Zavatski
7cd3f5656d Cleanups 2019-10-14 16:43:43 +03:00
Andrei Zavatski
27e3ffd293 Update dependencies 2019-10-13 11:23:49 +03:00
Andrei Zavatski
7f867562ca Merge remote-tracking branch 'refs/remotes/ppy/master' into comments_api 2019-10-13 11:15:43 +03:00
Dean Herbert
475815df04 Update ranking display to handle new osu-web request format 2019-10-11 13:09:21 +09:00
Andrei Zavatski
f6b78ad661 Overall cleanups 2019-10-10 11:43:45 +03:00
Andrei Zavatski
107d39c3e9 Add DeletedChildsPlaceholder to the bottom of the comments container 2019-10-09 14:10:05 +03:00
Andrei Zavatski
7e3c97f496 Implement DeletedChildsPlaceholder component 2019-10-09 13:37:07 +03:00
Andrei Zavatski
b2bd78308d Handle deleted comments 2019-10-09 12:18:49 +03:00
Andrei Zavatski
ad99a3236f Handle edited comments 2019-10-09 11:32:17 +03:00
Andrei Zavatski
0a56b041fd Implement ShowChildsButton 2019-10-09 11:07:56 +03:00
Andrei Zavatski
faef4d932d Improve message parsing 2019-10-09 10:17:14 +03:00
Andrei Zavatski
29b0eacc82 Implement SortSelector component 2019-10-08 22:46:42 +03:00
Andrei Zavatski
4230b00110 Rename APIComments to APICommentsController 2019-10-08 19:22:23 +03:00
Andrei Zavatski
000e4a563c Parse parent comments 2019-10-08 19:09:02 +03:00
Andrei Zavatski
451a7342ce Parse child comments 2019-10-08 15:39:03 +03:00
Andrei Zavatski
801b5b474e Add a User property to the comment for easy access 2019-10-08 13:45:13 +03:00
Andrei Zavatski
4b1a40daba Implement temp fix to get the actual message 2019-10-08 13:31:49 +03:00
Andrei Zavatski
cc6bf2f173 Add IsDeleted property 2019-10-07 18:45:22 +03:00
Andrei Zavatski
aa8df0fa20 Hook up api and implement some visual comments representation 2019-10-07 18:26:07 +03:00
Andrei Zavatski
738580ec61 Add IsTopLevel property 2019-10-07 16:58:24 +03:00
Andrei Zavatski
76db200bd3 Implement GetCommentsRequest 2019-10-07 16:48:05 +03:00
Andrei Zavatski
2d707b2b65 Implement PostBeatmapFavouriteRequest 2019-10-07 15:36:23 +03:00
Andrei Zavatski
5274f69872 Merge remote-tracking branch 'refs/remotes/ppy/master' into rankings-tables 2019-10-02 13:00:29 +03:00
Dan Balasescu
b161aa22c3
Merge branch 'master' into simplify-exit-logic-of-screens 2019-10-02 18:13:57 +09:00
Ganendra Afrasya
b6dd610af8 Apply reviews 2019-10-01 23:18:03 +07:00
Joehu
5f700f2ae9 Simplify exit logic of screens with textboxes using back button receptor 2019-10-01 08:26:34 -07:00
Ganendra Afrasya
208b9a4eba Add new virtual float for username to timestamp padding 2019-10-01 20:47:53 +07:00
Andrei Zavatski
2a395956aa Merge dependencies 2019-09-27 19:00:17 +03:00
Dean Herbert
c83db94eb7 Use isolated storage/api 2019-09-25 15:00:08 +09:00
Andrei Zavatski
573da7b1e7 Implement ChangelogEntryType 2019-09-19 20:34:37 +03:00
Dean Herbert
e2f7d4bc62 Remove unnecessary ToMetric avoidance 2019-09-19 15:45:43 +09:00
Dean Herbert
098e89cb66 Improve state reset flow 2019-09-19 15:23:33 +09:00
Dean Herbert
4967ffd8e5 Move inside leaderboard 2019-09-19 14:52:31 +09:00
Dean Herbert
2e0a85c2f6 Merge remote-tracking branch 'upstream/master' into songselect-best-user-score 2019-09-19 12:57:30 +09:00
Joehu
77ac186cf8 Add spacing to mod icons on leaderboards 2019-09-11 16:08:01 -07:00
iiSaLMaN
a1c580f27e Create "none selected" placeholder state 2019-09-05 05:56:21 +03:00
Bartłomiej Dach
08350a1aca Add parenthesis handling to old link format
Allow users to put both balanced round parentheses, as well as
unbalanced escaped ones, in old style link text. The implementation
is the same as for Markdown and new style links, except for swapping
all instances of

    \[\]

to

    \(\)

for obvious reasons (different type of parenthesis requiring escaping).
Tests also included.
2019-09-04 00:21:27 +02:00
Bartłomiej Dach
f04add6d9e Add bracket handling to Markdown link format
Allow users to put both balanced brackets, as well as unbalanced
escaped ones, in Markdown link text. The implementation is the exact
same as in the case of new format links.

For completion's sake, tests also included.
2019-09-04 00:07:00 +02:00
Bartłomiej Dach
24d4f0372c Refactor link parsing regexes to use named groups
For the sake of readability, consistency and to make further changes
easier, introduce named groups (?<text>) and (?<url>) to all link
parsing regexes which have parts containing the desired link text
and (optionally) URL.

The introduction of the named groups additionally simplifies
handleMatches() and makes all calls to it consistent.
2019-09-04 00:06:52 +02:00
Bartłomiej Dach
a8f16503e2 Add backslash escaping to new link format
For users to be able to add square brackets inside of links using
the new format, the regular expression used for parsing those links
contained a balancing group, which can be used for matching pairs
of tokens (in this case, opening and closing brackets, in that order).
However, this means that users could not post links with unmatched
brackets inside of them (ie. ones that contain single brackets, or
a closing bracket and then an opening one). Allow for escaping opening
and closing brackets using the backslash character.

The change substitutes this old fragment of the regex in the display
text group:

    [^\[\]]*        // any character other than closing/opening bracket

for this one:

    (((?<=\\)[\[\]])|[^\[\]])*

The second pattern in the alternative remains the same; the first one
performs the escaping, as follows:

    (
        (?<=\\)     // positive lookbehind expression:
                    // this match will succeed, if the next expression
                    // is preceded by a single backslash
        [\[\]]      // either an opening or closing brace
    )

Since the entire display group is matched, unfortunately the lookbehind
expression does not actually strip the backslashes, so they are
manually stripped in handleMatches.

As demonstrated in the unit tests attached, this also allows balanced
brackets to be mixed with escaped ones.
2019-09-03 23:18:39 +02:00
Dean Herbert
d21d68b36c Refactor to match web implementation 1:1 2019-09-02 17:04:38 +09:00
Dean Herbert
0985b1679f Move enum to response class 2019-09-02 15:57:55 +09:00
Dean Herbert
3d551b08a9 Rename legacy actions 2019-09-02 15:57:23 +09:00
Dean Herbert
13fadec6ec Merge remote-tracking branch 'upstream/master' into kudosu-info 2019-09-02 15:25:41 +09:00
Andrei Zavatski
72dbeaec16 Fix the comment 2019-08-30 10:26:11 +03:00
Andrei Zavatski
b03b520818 Move Absing from the APIKudosuHistory 2019-08-30 10:13:21 +03:00
StanR
d303083179 Update to match api 2019-08-29 12:29:31 +03:00
StanR
3347ee8170 Merge branch 'master' into beatmapset-genre-language 2019-08-29 09:57:53 +03:00
Andrei Zavatski
ed827d514f Add comments 2019-08-27 15:36:08 +03:00
Andrei Zavatski
f4d2bb036b Expand KudosuAction list 2019-08-22 16:50:54 +03:00
Andrei Zavatski
015406f4d2 Fix link parser 2019-08-18 22:02:59 +03:00
Andrei Zavatski
4c9b621f43 Fix some user links can't be opened inside the game 2019-08-18 22:01:36 +03:00
Andrei Zavatski
2393bbc69b Expand APIKudosuHistory 2019-08-18 21:27:53 +03:00
Andrei Zavatski
093359c13b fix incorrect json property 2019-08-09 11:19:14 +03:00
Andrei Zavatski
5073bce2dc Basic request implementation 2019-08-09 10:47:52 +03:00
Dan Balasescu
bb90a273ac
Merge branch 'master' into system-user-color 2019-08-08 19:02:24 +09:00
Dean Herbert
a76d3f1218
Add chat /join command (#5602)
Add chat /join command
2019-08-08 17:11:44 +09:00
Dean Herbert
6d5a7041fd Move system user colour assignment to ensure consistency 2019-08-08 17:10:06 +09:00
Max Hübner
0bed3bfece formatting inspection 2 2019-08-08 09:02:09 +02:00
Max Hübner
bcd443a3aa remove /j 2019-08-08 08:56:52 +02:00
Andrei Zavatski
b1c78c43f3 Simplify target string 2019-08-07 06:57:46 +03:00
Andrei Zavatski
c16e84e5e6 Fix unability to get local user with specific ruleset 2019-08-07 06:35:57 +03:00
Andrei Zavatski
3cfbbac5dc Expand requests 2019-08-06 17:47:31 +03:00
Max Hübner
ffb6794b4e formatting inspection 2019-08-06 16:11:13 +02:00
smoogipoo
ee9e8f6261 Fix memory leaks from download buttons 2019-08-05 17:58:16 +09:00
Max Hübner
2f5d23b354 add join command 2019-08-05 01:02:42 +02:00
Joehu
e84c79d140 Update osu!direct categories sorting with web changes 2019-08-02 13:16:33 -07:00
Andrei Zavatski
0f36088ef8 Add loved section 2019-08-01 11:06:29 +03:00
Dean Herbert
7b7e4f924d
Merge branch 'master' into songselect-best-user-score 2019-07-26 13:06:14 +09:00
Dean Herbert
9e34582c17
Merge branch 'master' into separate-glowing-text-from-leaderboardscore 2019-07-23 11:31:47 +09:00
Dean Herbert
8c54708582
Merge branch 'master' into songselect-best-user-score 2019-07-22 22:34:11 +09:00
Andrei Zavatski
de8ac9a428 Simple implementation 2019-07-21 21:41:07 +03:00
iiSaLMaN
ed0ef90613 Separate glowing sprite text into it's own class 2019-07-21 12:14:55 +03:00
Dean Herbert
e76b3e2b40 User property instead of method 2019-07-21 10:42:40 +09:00
iiSaLMaN
842417cf42 Check if selected scope requires API 2019-07-21 03:07:27 +03:00
smoogipoo
066bee3535 Simplify offset calculation 2019-07-19 16:02:33 +09:00
smoogipoo
2a66cf36d5 Merge remote-tracking branch 'Joehuu/master' into requests-limit-usage 2019-07-19 15:33:18 +09:00
smoogipoo
99ab77b926 Add PaginatedWebRequest to handle request pagination 2019-07-19 15:33:09 +09:00
Dean Herbert
66036508b6 Fix potential crash when displaying leaderbaords 2019-07-17 17:39:04 +09:00