Craftplacer
b746fe7c03
Fix binding order
2021-06-05 11:03:49 +02:00
Bartłomiej Dach
5f5f3a8c5c
General comment cleanups
2021-06-03 14:20:52 +02:00
Bartłomiej Dach
b2cc2a51ec
Rename method to be less misleading
...
Would rather avoid variations of Equals/Equal/IsEqual. There's not
really much equality involved as the types are different.
2021-06-03 14:13:01 +02:00
Bartłomiej Dach
e8c2483f19
Use standard list instead of bindable list
...
No reason to use a bindable list there, as `CollectionChanged` was never
subscribed to.
2021-06-03 14:09:52 +02:00
Bartłomiej Dach
8193691cbc
Invert condition to reduce nesting
2021-06-03 14:09:52 +02:00
Dean Herbert
a6cc37eb3b
Mark fields readonly
2021-06-03 14:56:21 +09:00
Dean Herbert
4a5d8215f3
Merge branch 'master' into keyboard_shortcuts
2021-06-03 14:47:40 +09:00
Dean Herbert
1f8abcdf6c
Merge branch 'master' into fix-relative-link-resolution
2021-06-01 16:49:02 +09:00
Dean Herbert
a9f4bc6285
Never return a null argument
...
Enable nullable
2021-06-01 14:11:17 +09:00
Dean Herbert
111bfd4d88
Fix relative URLs having a null argument after resolution to LinkDetails
2021-06-01 13:50:20 +09:00
Craftplacer
b3ac67675e
Merge branch 'chat-mention' of github.com:Craftplacer/osu into chat-mention
2021-05-27 21:59:51 +02:00
Craftplacer
13b2b7c148
Fix formatting
2021-05-27 21:58:54 +02:00
Craftplacer
0b17af81f1
Use Contains instead of IndexOf
...
Co-authored-by: Berkan Diler <b.diler@gmx.de>
2021-05-27 09:48:30 +00:00
Dean Herbert
aa23c4a4b9
Merge branch 'master' into keyboard_shortcuts
2021-05-27 16:30:34 +09:00
Craftplacer
a679efac1c
Reduce duplicate notification code by making a base class
2021-05-27 01:00:26 +02:00
Craftplacer
cf39e58ce7
Subscribe to CollectionChanged before binding to JoinedChannels
2021-05-27 01:00:08 +02:00
Craftplacer
d47370bac9
Locally bind to LocalUser
2021-05-27 00:59:29 +02:00
Gagah Pangeran Rosfatiputra
905364b5fe
add url as argument for link action external
2021-05-26 19:34:34 +07:00
Dean Herbert
52ca2f4797
Merge branch 'master' into chat-mention
2021-05-26 16:00:26 +09:00
smoogipoo
e3b8d8ee18
Add support for overlay-coloured links
2021-05-17 16:58:54 +09:00
Gagah Pangeran Rosfatiputra
f2de28814a
add and handle OpenWiki link action
2021-05-17 00:43:59 +07:00
Dean Herbert
3befb49ea9
Fix system messages always being displayed above standard messages
...
Closes https://github.com/ppy/osu/issues/12509 .
2021-04-22 14:52:01 +09:00
Dean Herbert
254f9bb58b
Show API human readable error message when chat posting fails
...
Closes #11902 .
2021-02-26 13:38:00 +09:00
Dan Balasescu
dad6e7e825
Merge pull request #11755 from peppy/fix-message-formatter-domain
...
Fix MessageFormatter not working for custom endpoints
2021-02-12 16:01:55 +09:00
Dean Herbert
3799493536
Add test coverage of int match failures
2021-02-12 15:25:00 +09:00
Dean Herbert
bb9123eecd
Better handle fallback scenarios for beatmap links
2021-02-12 15:17:54 +09:00
Dean Herbert
1c5aaf3832
Add back default value
2021-02-12 15:03:53 +09:00
Dean Herbert
6a42d312f6
Match using EndsWith to ignore protocol (and allow http)
2021-02-12 14:59:56 +09:00
Dean Herbert
33c9ecac8a
Fix MessageFormatter not working for custom endpoints
2021-02-12 14:54:19 +09:00
Dean Herbert
e6980688f6
Leave the multiplayer channel when leaving multiplayer
2021-01-21 15:42:23 +09:00
Dean Herbert
323da82477
Add website root URL and update most links to use it
...
For what it's worth, I intentionally didn't include news / changelog /
supporter, because these should never change.
2020-12-24 18:11:42 +09:00
Angela Zhang
74bd2f41e6
Style fixes
2020-12-20 13:51:39 -06:00
Angela Zhang
7d326c7f24
Review changes + added tests
2020-12-20 13:18:00 -06:00
smoogipoo
45107280a0
Make TimeBetweenPolls into a bindable
2020-12-20 18:34:54 +09:00
Angela Zhang
45482e8709
Whitespace fixes
2020-12-17 18:43:39 -06:00
Angela Zhang
454c7538c0
CI Style Fixes
2020-12-17 17:59:36 -06:00
Angela Zhang
71a082110a
Making style changes + supports reopening PM chats
2020-12-17 16:56:34 -06:00
Joseph-Ramos-CMU
b37a983fbf
Formatting fixes
...
Fixed some formatting issues to comply with InspectCode.
2020-12-16 12:56:36 -05:00
Joseph-Ramos-CMU
2f8a085adf
Reworked reopening last tab to no longer use recursion
...
A reviewer of the pull request was concerned about recursion. I changed
the code to be iterative.
2020-12-16 12:04:07 -05:00
Joseph-Ramos-CMU
7b169c4f62
Changed internal closedChannel list to store channels names instead of channel objects
...
This is for efficiency purposes; it's more efficient to just store
the names than store the whole object.
2020-12-16 10:13:50 -05:00
Joseph-Ramos-CMU
bd2765ecc4
Fixed style concerns
2020-12-14 13:23:43 -05:00
Joseph-Ramos-CMU
3301f532ee
Additional formatting
...
Ran the dotnet format as well as the .\InspectCode.ps1 tools, and
fixed the style issues they found.
2020-12-13 23:27:48 -05:00
Joseph-Ramos-CMU
08a2cdaf8d
Minor formatting changes
2020-12-13 21:02:35 -05:00
Joseph-Ramos-CMU
2863187b16
Changing behvaior for channels that have already been reopened
...
Ctrl+Shift+t will now skip trying to reopen any channels that are
already open, and will instead attempt to open the next still-closed channel.
2020-12-13 20:46:02 -05:00
Joseph-Ramos-CMU
5481ba43c7
Fixed a bug where Ctrl+Shift+t shortcut was using the wrong list
...
The JoinLastClosedChannel code was using the joinedChannels list instead
of the closedChannels list. Fixing this bug made the Ctrl+Shift+t
shortuct work as expected.
2020-12-13 14:14:57 -05:00
Joseph-Ramos-CMU
2d98da0d61
Untested Ctrl+Shift+T shortcut prototype
...
Added a list to the ChannelManager class that tracks
which tabs I closed. Works like a stack, where it adds to the end
every time I close a tab. Then added a function that uses
this list to open the last closed channel, and added a shortcut inside of ChatOverlay,
similar to how jmeng implemented shortcuts.
Code is currently untested.
2020-12-13 13:21:50 -05:00
Dean Herbert
1e1569eb53
Use int instead of long for user_id fields for now
2020-11-06 12:59:46 +09:00
Berkan Diler
fe3a23750c
Use char overloads for string methods
2020-10-16 11:52:29 +02:00
Dean Herbert
61e62929ee
Apply changes in line with framework event logic update
2020-10-01 13:06:01 +09:00
Poliwrath
97637bc747
remove new.ppy.sh from MessageFormatter
2020-08-26 02:50:02 -04:00
Dean Herbert
7fe69bb199
Fix some web requests retrieving the user too early
2020-07-14 13:07:17 +09:00
smoogipoo
88aed1d504
Merge branch 'master' into update-inspectcode-version
2020-06-09 20:12:39 +09:00
Dean Herbert
712fd6a944
Fetch existing private message channels on re-joining
2020-06-08 17:54:26 +09:00
Dean Herbert
f6d9f0597b
Add implicit join logic for multiplayer rooms
2020-06-03 21:28:29 +09:00
Dean Herbert
1ba3f0ac14
Fix chat history not being loaded for multiplayer matches
2020-06-03 17:31:55 +09:00
smoogipoo
f3b5149648
Move some suggestions to warnings, resolve issues
2020-06-03 16:48:44 +09:00
alex
0e2ccac33b
Add spaces to comments
2020-05-04 18:36:24 -07:00
Dean Herbert
c73d45bc01
Reduce initial channel load overhead by only loading history on active channel
2020-04-29 15:23:28 +09:00
Dean Herbert
07b8ef83c9
Add /np to help line
2020-04-19 22:15:07 +09:00
Dean Herbert
1dd471dfcc
Add /np (now playing) command support in chat
2020-04-19 15:13:25 +09:00
Dean Herbert
1b6342438f
Hide scrollbars in tournament chat display
2020-03-23 12:05:16 +09:00
unknown
2340142dc1
Merge branch 'master' of https://github.com/ppy/osu into linkify-metadata
2020-03-18 14:18:53 +08:00
TheWildTree
acd280c855
Add System channel type and use it for the ChannelSelectorTab
2020-03-15 22:13:26 +01:00
Dean Herbert
0102aaf32a
Move chat expand/contract logic local to tournament
2020-03-08 18:11:57 +09:00
Dean Herbert
aed52179f0
Fix weird reverse logic
2020-03-08 15:32:22 +09:00
recapitalverb
7de7748607
Remove unnecessary nullability
2020-02-14 22:02:10 +07:00
recapitalverb
c46d828716
Preserve permitNulls
2020-02-14 20:59:51 +07:00
recapitalverb
c753cb46c5
Use [Resolved] wherever possible
2020-02-14 20:14:00 +07:00
Craftplacer
1c1b5aa939
Merge branch 'chat-mention' of https://github.com/Craftplacer/osu into chat-mention
2020-02-08 10:45:41 +01:00
Craftplacer
41915df1f3
Change comment
2020-02-07 16:52:53 +01:00
Craftplacer
dd86443264
Make isMentioning static
2020-02-07 16:51:37 +01:00
Craftplacer
7cd228db07
Change notifyOnChat to notifyOnPM
2020-02-07 16:50:22 +01:00
Bartłomiej Dach
5875f2158c
Properly rename event handler
2020-02-05 19:20:16 +01:00
Craftplacer
9378b216e6
Lowercase the N inside channel_NewMessagesArrived
2020-02-05 19:01:51 +01:00
Craftplacer
f16b90a152
Remove username data from PrivateMessageNotification
2020-02-03 23:56:23 +01:00
Craftplacer
4eedd82032
Don't unnecessarily expose properties
2020-02-03 23:03:27 +01:00
unknown
2274d70dac
apply suggestions
2020-01-31 06:41:50 +08:00
unknown
c5995acfff
linkify metadata
2020-01-30 12:30:25 +08:00
Craftplacer
48231317d2
Make IsMentioning private
2020-01-29 02:07:08 +01:00
Craftplacer
5e91a3f0f8
Use IndexOf
2020-01-29 01:59:52 +01:00
Craftplacer
65644731e0
Make field readonly
2020-01-25 17:03:39 +01:00
Craftplacer
f9def83552
Make IsMentioning public to allow it to be used for testing
2020-01-25 16:44:45 +01:00
Craftplacer
e0ef672549
Use binded list
2020-01-25 16:43:51 +01:00
Craftplacer
00da45ead4
Matching strings instead of splitting
2020-01-25 14:40:53 +01:00
Craftplacer
158b969052
Remove XML doc from HandleMessages
2020-01-25 14:40:16 +01:00
Craftplacer
c6f450f932
Resolve code analysis errors
2020-01-22 11:23:27 +01:00
Craftplacer
3d2625836a
Remove static from getWords method
2020-01-22 10:50:27 +01:00
Craftplacer
771155e882
No notification "debouncing"
2020-01-22 10:48:55 +01:00
Craftplacer
e4accb3344
Remove IsActive property
...
as it never really made sense to have it in the first place
2020-01-22 10:47:51 +01:00
Craftplacer
73d4b6a6be
Remove redundant lambda signature parentheses
...
:/
2020-01-22 00:53:49 +01:00
Craftplacer
d29694d788
Add additional comment to explain the code order
2020-01-22 00:41:46 +01:00
Craftplacer
88ea1138b6
Compile regex
2020-01-22 00:31:44 +01:00
Craftplacer
795051e256
Prevent channel duplicates
2020-01-22 00:29:12 +01:00
Craftplacer
5978e2c0e2
Redo how instances of PM notifications are removed
2020-01-22 00:28:59 +01:00
Craftplacer
699547e1a2
Also exclude last read message
2020-01-22 00:28:08 +01:00
Craftplacer
9fd494b057
Fix order where messages are checked in
2020-01-22 00:27:46 +01:00
Craftplacer
47a92a13b0
Change code comments
2020-01-22 00:13:07 +01:00
Craftplacer
4d6ff31134
Wrap getWords() with anyCaseInsensitive()
2020-01-21 23:43:21 +01:00
Craftplacer
63c8ae8211
Use IDs for checking against message author
2020-01-21 23:42:15 +01:00
Craftplacer
be2a88c8a5
Remove left over config entry
2020-01-19 18:40:17 +01:00
Craftplacer
7d1fc388ce
Resolve code quality errors
2020-01-19 18:34:48 +01:00
Craftplacer
4b871f61e3
Use Humanizer for counting PMs in text
2020-01-19 18:23:12 +01:00
Craftplacer
4feae82434
Split HandleMessages method
2020-01-19 17:55:17 +01:00
Craftplacer
86ecaf223d
Improve getWords()
2020-01-19 17:36:38 +01:00
Craftplacer
dd5478fe1f
Remove highlighted/mentioned words
2020-01-19 17:26:43 +01:00
Craftplacer
8a9c90c5e6
Resolve CA errors #2
2020-01-18 16:18:17 +01:00
Craftplacer
64fe9692ed
Resolve CA errors
2020-01-18 15:57:51 +01:00
Craftplacer
8ddd36596e
Revert useless changes varying from properties, naming changes etc.
2020-01-18 15:40:55 +01:00
Craftplacer
f55cf03bd0
Remove unnecessary changes after rework
2020-01-18 14:17:26 +01:00
Craftplacer
5d244f48f7
Use instance list instead of exposing NotifcationOverlay's notifications
2020-01-17 00:00:10 +01:00
Craftplacer
2b5d541857
Merge remote-tracking branch 'upstream/master' into chat-mention
2020-01-16 23:15:39 +01:00
Craftplacer
1b53c0ff74
Remove populated property, and other changes
2020-01-16 23:15:30 +01:00
Dean Herbert
c190c68659
Add safety for channel with no messages
2020-01-13 12:22:44 +09:00
Craftplacer
8cc2d70df0
Reduce API calls by checking what message was last marked as read
2020-01-12 16:24:14 +01:00
Craftplacer
ccaf4e48a1
Remove using directive
2020-01-11 20:04:58 +01:00
Craftplacer
2ea1367a88
Remove message parameter and make it mark the entire channel as read
2020-01-11 19:47:35 +01:00
Craftplacer
f8a11e50b6
Remove redundant ToString() calls
...
as string interpolation does this automatically..
2020-01-11 18:00:34 +01:00
Craftplacer
d9c57baa89
Add test case for mismatch of channels
2020-01-11 17:48:03 +01:00
Craftplacer
50e357a799
Change method parameters, add detailed error message and method docs
2020-01-11 17:42:02 +01:00
Craftplacer
cd679707ed
Prevent channel duplicates
...
Co-Authored-By: Bartłomiej Dach <dach.bartlomiej@gmail.com>
2020-01-11 17:16:11 +01:00
Craftplacer
cd91cc860d
Resolve "Redundant lambda signature parentheses"
2020-01-04 01:06:38 +01:00
Craftplacer
4f36bc0fd3
Add error log message for debugging
2020-01-04 00:49:35 +01:00
Craftplacer
7b71e56817
Initial commit
2020-01-02 17:07:28 +01:00
Craftplacer
0d812bce9f
WIP changes for code review
2019-12-26 03:32:40 +01:00
Craftplacer
7bdfd2e23c
All copyright goes to peppy
2019-12-17 07:04:55 +01:00
Craftplacer
b6c31e7764
Remove ignore list, move code to MessageNotifier and add it to DI
...
This also adds countable private message notifications.
2019-12-17 06:59:27 +01:00
Craftplacer
15c25c571d
Merge remote-tracking branch 'upstream/master' into chat-mention
2019-12-16 00:59:06 +01:00
Craftplacer
e8180ab153
Add ToString() method to message for better debugging
2019-12-16 00:45:55 +01:00
Huo Yaoyuan
e9b8cbb516
Apply other styles.
2019-11-11 20:27:04 +08:00
Dean Herbert
898520935e
Move link handling code to OsuGame
...
This allows for future calls from arguments / associations
2019-11-01 11:40:51 +09:00
Dean Herbert
d1c6e3f620
Add test for scroll to end when max history is exceeded
2019-10-29 14:32:52 +09:00
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
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
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
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
Andrei Zavatski
015406f4d2
Fix link parser
2019-08-18 22:02:59 +03:00
Dan Balasescu
bb90a273ac
Merge branch 'master' into system-user-color
2019-08-08 19:02:24 +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