Commit Graph

686 Commits

Author SHA1 Message Date
Thorsten 8a71bdc1a0 Add meta tag to attachment to show images in mastodon app. 2022-11-18 09:38:02 +01:00
Philipp 00883c9dcb
Move mod/editpost.php to src\Module\Post\Edit 2022-11-15 22:32:46 +01:00
Hypolite Petovan fe547b7851 Centralize config.admin_email management in Model\User 2022-11-14 17:02:42 -05:00
Hypolite Petovan 4dc96daeb3 mail() requires additional headers to be separated by CRLF
- Rewrite Email->getAdditionalMailHeaderString to have only one string concatenation statement
2022-11-13 02:28:06 -05:00
Hypolite Petovan 4a626ef101 Create new Contact\Redir module class
- Move /redir route to /contact/redir
2022-11-08 20:12:23 -05:00
Philipp f13c91b320
Move mod/cal.php and mod/events.php to Module 2022-11-07 19:52:24 +01:00
Michael 210200d330 Use different parser modes for Mastodon and Twitter-API 2022-11-06 20:02:43 +00:00
Michael e10d714ef5 Don't show following/followed_by on pending 2022-11-06 08:18:28 +00:00
Michael Vogel 52f74b6312
Update src/Object/Api/Mastodon/Status.php
Co-authored-by: Hypolite Petovan <hypolite@mrpetovan.com>
2022-11-05 23:51:16 +01:00
Michael aa2b4e15a3 Issue 11846: Fix client behaviour when following hash tags 2022-11-05 22:35:35 +00:00
Roland Häder 03e09627e4
Used $this->isThreaded() instead as suggested by @MrPetovan 2022-10-26 17:59:07 +02:00
Roland Häder 3c50d5b70f
Changes:
- made code more readable
2022-10-26 01:31:34 +02:00
Roland Häder 2f1336339f
Changes:
- added missing type-hints
- added missing documentation
- changed double-quotes to single
- Setters do ALWAYS return void
2022-10-26 01:29:01 +02:00
Philipp b3f9cef94a
UserSession class [3] - Refactor src/ files excluding Module/Model 2022-10-21 19:35:32 +02:00
Michael 11944dda32 old boot.php functions replaced in various places 2022-10-19 07:44:08 -04:00
Philipp 7ac86e49d1
Move Core\Session::get() to DI::session()->get() 2022-10-18 21:10:37 +02:00
Roland Häder 26e0469de7
Merge branch 'develop' into rewrite/gravity-constants 2022-10-18 16:34:40 +02:00
Michael 6f68679375 The EOL constant is removed 2022-10-18 12:29:50 +00:00
Michael 62a0d55fc8 The friendica constants have been moved to the app class 2022-10-17 10:37:48 +00:00
Roland Häder da66730e4f
Rewrite:
- moved constants GRAVITY_* from boot.php to Friendica\Model\Item
- also rewrote some array initialization:

From:
````
<?php
$arr = [];
$arr['foo'] = "FOO";
````

To:
````
<?php
$arr['foo'] = "FOO";
````
- added a few type-hints
2022-10-15 00:44:06 +02:00
Roland Häder 83cbe586ac
Changes
- renamed Item::visibleActivity() to Item::isVisibleActivity() as this returns
  a boolean value
- added some type-hints
- added some documentation
2022-06-30 14:18:13 +02:00
Roland Häder 4bdce6948f
Changed:
- $publicContact['about'] can be NULL, causing following error:
--------------------------
Argument 1 passed to Friendica\Content\Text\BBCode::toPlaintext() must be of
the type string, null given, called in /.../src/Object/Api/Twitter/User.php
--------------------------
The "expensive" code there can be avoided being called by an empty string or
NULL to increase performance.
2022-06-26 23:28:48 +02:00
Roland Häder fd8f4269ff
Reformatted code 2022-06-23 17:30:17 +02:00
Roland Häder d8ff966d21
Throw IAE again (should never become visible) 2022-06-23 17:30:13 +02:00
Roland Häder 35c78ce14c
Ops, cannot return Thread? 2022-06-23 17:30:12 +02:00
Roland Häder c2e26b4f49
Changed:
- Introduced InvalidArgumentException (should never come)
- added type-hints
2022-06-23 17:30:12 +02:00
Philipp 78bf7f187c
Merge pull request #11669 from MrPetovan/bug/11666-email-subject-double-encode 2022-06-22 16:51:23 +02:00
Roland Häder 84bfc37bf1
Changes:
- added more type-hints
- added missing documentation
2022-06-22 14:36:45 +02:00
Hypolite Petovan d68f307337 Remove email subject encoding from ItemCCEmail constructor
- It was wrongly re-encoded in Emailer::send
2022-06-21 21:12:09 -04:00
Roland Häder bff57bb030
Changes:
- added type-hints
- added returned type-hints in interface (I checked all)
2022-06-19 14:00:31 +02:00
Michael 4157f816f5 Fix for account variable name 2022-06-10 20:32:21 +00:00
Michael 9a1abda314 Use "avatar" instead of "contact" 2022-06-10 20:26:57 +00:00
Michael 7e747b2f41 API: Speed improvements when fetching posts 2022-06-10 18:49:03 +00:00
Michael 4108704ee3 Fix: Only public posts can be pinned 2022-06-04 06:11:32 +00:00
Philipp 218fc0c20d
Fix unsupported animated webp parsing 2022-05-21 18:51:03 +02:00
Philipp 783b05cbb1
Fix unsupported animated webp parsing 2022-05-21 18:44:03 +02:00
Michael fae414fedd Fix local avatar, improve speed for fetching cached photos 2022-05-10 18:18:24 +00:00
Michael e3692c0105 Replaced check with hardwired path 2022-05-09 04:26:00 +00:00
Michael f220e26f00 Use new function to check for a local avatar cache file 2022-05-08 10:32:29 +00:00
Michael d3de2497bc Use gsid for the network name 2022-04-29 07:47:24 +00:00
Michael d44641e58c Fetch avatar by id 2022-04-29 07:30:13 +00:00
Michael 1326239576 Reduce the amount of queries 2022-04-29 05:32:12 +00:00
Michael 9b646dad97 API: We can now display polls 2022-04-22 19:24:22 +00:00
Michael 94a8f430e3 Avoid warning " Undefined variable $browsershare" 2022-04-20 12:03:09 +00:00
Michael 62b31900a6 Renamed "share" with "share via" 2022-04-19 21:04:55 +00:00
Michael 75bc4eccb7 Display featured posts for contacts 2022-04-07 21:52:25 +00:00
Michael 13addaf901 Always provide the title variable 2022-03-22 07:07:33 +00:00
Michael be016b0c45 Prioritize the title over the content warning 2022-03-22 07:00:44 +00:00
Michael e0468ac914 API: Improve support for the summary field 2022-03-08 18:32:09 +00:00
Michael 903bc9b679 Improved support for Mastodon style content warnings 2022-03-06 11:49:55 +00:00
Michael 772294494e API: Fix display of reshares / return value of activities 2022-02-28 20:10:42 +00:00
Michael bf5c8a2c43 API: several fixes to the Twitter/Statusnet API 2022-02-25 19:16:40 +00:00
Michael Vogel 948405a486
Merge pull request #11267 from MrPetovan/task/11264-mastodon-api-version
Update Mastodon API version string to include Mastodon version compatibility
2022-02-23 05:38:25 +01:00
Hypolite Petovan d7b573c6d7 Update Mastodon API version string to include Mastodon version compatibility 2022-02-20 20:22:39 -05:00
Hypolite Petovan e0ea51818e Add constructors to a couple of Mastodon API value objects 2022-02-20 16:17:03 -05:00
Michael 39e820e6a3 Display the post receivers 2022-02-20 19:25:55 +00:00
Michael c867581530 Store the receivers of a post in the tags 2022-02-19 13:31:49 +00:00
Michael Vogel 6bc69f3353 Workaround for timing problems / Avoid a notice in the scheduled posts 2022-02-12 18:27:58 +01:00
Michael 95f085b7ac API: The legacy API finally moved 2022-01-15 21:38:19 +00:00
Hypolite Petovan f2af985350 [frio] Add a conditional browser share button 2022-01-09 12:31:54 -05:00
Hypolite Petovan 18b32b68aa [frio] Add connector-based privacy display 2022-01-09 12:17:52 -05:00
Philipp c588b280d7
Fix all license header & be less aggressive 2022-01-07 00:35:28 +01:00
Balázs Úr 733f3de9ed Add missing copyright text 2022-01-02 10:49:50 +01:00
Philipp 322b7c856c
Merge pull request #11129 from urbalazs/copyright-2022
Update copyright
2022-01-02 09:45:35 +01:00
Balázs Úr e56a53647b Update copyright 2022-01-02 08:27:47 +01:00
Hypolite Petovan 0df539a65e
Merge pull request #11127 from nupplaphil/feat/tests
Transform legacy API tests into new structure
2022-01-02 01:06:48 +01:00
Philipp 4c77e99f89
Add title to the text/html content for Twitter status object 2022-01-01 23:14:52 +01:00
Michael 29be22ee6a Display interaction data for Diaspora accounts 2021-12-30 22:11:52 +00:00
Michael Vogel 85d68a001a
Update src/Object/Api/Twitter/DirectMessage.php
Co-authored-by: Hypolite Petovan <hypolite@mrpetovan.com>
2021-12-17 15:48:03 +01:00
Michael fd63421dde Standards 2021-12-16 22:51:47 +00:00
Michael b7a460485a API: Direct Messages moved to new place 2021-12-16 22:44:50 +00:00
Michael b15d3a2523 API: Next bunch of functions transformed 2021-11-27 22:25:36 -05:00
Michael a3aab4a75a Entities, Source and api functions rearranged 2021-11-24 06:44:25 +00:00
Michael 38b641ca6b Coding standards 2021-11-23 21:56:34 +00:00
Michael 07c2f36946 Removing unused functions, added (deactivated) attachments 2021-11-23 21:54:19 +00:00
Michael 4373a66f74 Coding standards 2021-11-23 14:55:52 +00:00
Michael b56ccbcf2b More objects added 2021-11-23 10:12:11 +00:00
Michael 214a0524dd Merge remote-tracking branch 'upstream/develop' into api-status 2021-11-22 07:33:25 +00:00
Michael 670bbe58a1 API: The status is now an object 2021-11-22 07:28:02 +00:00
Michael e1d4f96b06 Remove unused user fields 2021-11-21 20:14:48 +00:00
Michael 1f79d25ffc Replaced "api_date" 2021-11-18 21:43:13 +00:00
Michael 2bb1805a67 Added profile picture 2021-11-16 23:57:12 +00:00
Michael 6ea426178a API: moved classes / unified user array creation 2021-11-16 23:21:40 +00:00
Michael 1518ad33ad API: Classes moved to the correct places according to their origin 2021-11-10 07:31:39 +00:00
Michael eb1b2256a0 Removed and replaced deprecated functionalities 2021-11-07 14:00:47 +00:00
Michael 63da4a75e9 The boot.php had been cleared of most functions 2021-11-04 20:29:59 +00:00
Michael 24ee87224f Replaced deprecated "log" function call 2021-11-03 23:19:24 +00:00
Michael a33185f835 Use a constant for the profile photo album 2021-10-14 04:12:00 +00:00
Hypolite Petovan 7a2d5f6a8e Move notification to the new paradigm 2021-10-02 18:15:45 -04:00
Hypolite Petovan bc0734e0f1 Move notification introductions to the new paradigm 2021-10-02 18:15:45 -04:00
Hypolite Petovan 3e6fea30f2 Create constants for Mastodon notification types 2021-10-02 18:15:44 -04:00
Hypolite Petovan 47acb6a278 Move notify to the new paradigm
- Remove unused frion notify template
- Update API test
2021-10-02 18:15:42 -04:00
Michael 0ad904c185 The conversation functionality moved to a class 2021-09-23 21:18:36 +00:00
Michael 9c73e49db7 Make posts on the profile page writable 2021-09-19 10:53:19 +00:00
Philipp a65fbcebe7
Fixing #10699 (prohibits blocking and ignoreing from the photo menu) 2021-09-12 21:20:12 +02:00
fabrixxm 7f695197aa Fix review points
- Fix headers hierarchy
- Improve accessibility:
 	- set mouse pointer
	- make rows focusable
	- open on key press
	- add tooltip with "title"
	- add role and aria attributes
- Rename `ParsedLog` to `ParsedLogLine`
- Add docs to `ReversedFileReader`'s implementation of `Iterator`'s methods
- Add docs to `ParsedLogIterator`'s implementation of `Iterator`'s methods
- Remove unnecessary comment
- Add more test for parsing log lines and fix some edge cases
- Fix function name in snake-case to camelCase
- Remove `DIRECTORY_SEPARATOR`
2021-08-20 11:02:18 +02:00
fabrixxm a62124285d Add tests for ParsedLog and fix parsing 2021-08-19 14:55:33 +02:00
fabrixxm 84fa668845 Fix code formatting 2021-08-19 14:55:33 +02:00
fabrixxm 5b9aeeeca9 Add search and filter to log view 2021-08-19 14:55:33 +02:00
fabrixxm 9368f5445d Display structured logs in admin
Tries to parse log lines and to display info in a table.
Additional JSON data is parsed and displayed clicking on a row.

File reading and line parsing is handled in iterators, to avoid to keep
too much data in memory.
Search and filter should be trivial to add.
Log file is read backward to display log events newest first.
A "tail" functionality should be easy to implement.
2021-08-19 14:55:33 +02:00
Michael e28a4265c5 API: First steps to support subscriptions 2021-08-15 00:30:41 +00:00
Michael 473adaf463 Mark, file and starring does now work for all items 2021-08-12 05:28:47 +00:00
Michael c81e81dc8d "getUserId" is now "getLoggedInUserId" 2021-08-09 20:33:46 +00:00
Michael 15b93b4459 "getUserNickname" is now "getLoggedInUserNickname" 2021-08-09 19:48:39 +00:00
Michael b8fa75b2dd Changed function name 2021-08-09 15:29:07 +00:00
Michael 28090bd793 Get rid of App->user completely 2021-08-08 19:30:21 +00:00
Michael fc283ab928 Remove direct calls to App->user 2021-08-08 10:14:56 +00:00
Michael 13529fa97d Support the "media_attachments" field 2021-07-30 22:39:13 +00:00
Michael 929de9081e All needed fields are now filled 2021-07-30 13:22:06 +00:00
Michael 93263a820d Function renamed, documentation added 2021-07-30 10:24:08 +00:00
Michael c9eca1edeb Fix array index 2021-07-29 15:01:09 +00:00
Michael a1828430e5 Fixing variables 2021-07-29 14:58:04 +00:00
Michael 6ea3d4aa61 Added API calls, removed fields 2021-07-29 10:34:31 +00:00
Michael c89533a70b Support for stacked profiler analysis 2021-07-27 04:57:29 +00:00
Michael 8f46064430 Using getter/setter functions 2021-07-24 20:34:07 +00:00
Michael 30aad250df App->contact is now removed 2021-07-24 11:49:11 +00:00
Michael 2502a9192d Many more app-variables removed 2021-07-24 10:09:39 +00:00
Michael 71f53c946f New function to replace mentions with nicknames 2021-07-22 09:13:39 +00:00
Michael 3a5523820c Legacy DFRN transport layer is removed 2021-07-15 13:28:32 +00:00
Hypolite Petovan be18a59bd7 Make last status parameter actually optional in Object\Api\Mastodon\Conversation 2021-07-13 23:02:11 -04:00
Michael 267b652857 Improve how shared posting look on mobile apps 2021-07-13 08:30:05 +00:00
Michael d8974c9a2a Function renamed to better reflect the functionality 2021-07-09 06:29:24 +00:00
Michael 377bb78cc2 Set "convertForItem" at more places 2021-07-08 20:01:52 +00:00
Michael 901c3f4855 we now have got an uri-id field for the contact table 2021-07-08 18:59:58 +00:00
Michael f29bd23ea8 New function to convert BBCode for a given ID 2021-07-08 13:47:46 +00:00
Michael 37a76e70ef Providing the uri-id to "convert" when possible 2021-07-06 12:34:48 +00:00
Michael 09aa496387 Some more places changed to the new contact avatar path format 2021-06-30 16:58:46 +00:00
Michael 19aef93560 Unified avatar paths 2021-06-29 20:26:58 +00:00
Michael 9edc75e29d Improved avatar handling (timestamps for caching) 2021-06-29 06:15:45 +00:00
Michael Vogel d9d30d9555
Apply suggestions from code review
Co-authored-by: Hypolite Petovan <hypolite@mrpetovan.com>
2021-06-25 20:00:59 +02:00
Michael ed4a18f079 Function to return the avatar and header path for a given contact id 2021-06-25 17:03:35 +00:00
Michael e6e90abc77 AOI: Send "history" section for trends 2021-06-24 22:15:25 +00:00
Michael 96809b3fdd API: Improved avatar handling 2021-06-24 07:08:38 +00:00
Michael df05d6b52a Transmit mediaType for headers as well / use blank image for empty header 2021-06-22 13:58:29 +00:00
Philipp d4387d45ee
Cleanup Code 2021-06-20 13:25:45 +02:00
Michael 09609c40a4 Classname fixed 2021-06-18 05:50:52 +00:00
Michael 7d835ad790 Unused "use" removed 2021-06-18 03:32:20 +00:00
Michael 0a5904a001 API: "created_at" is timestamp 2021-06-18 03:21:38 +00:00
Michael Vogel b184df1108
Update src/Object/Api/Mastodon/Account.php
Co-authored-by: Hypolite Petovan <hypolite@mrpetovan.com>
2021-06-17 19:14:35 +02:00
Michael bd016dc680 Photos should point to the local system 2021-06-17 16:55:54 +00:00
Michael fe07dc828b Fix noscrape publishing and pulling, added header 2021-06-17 11:23:32 +00:00
Michael 945f482ba3 API: Some more apps are now supported 2021-06-10 19:10:33 +00:00
Michael d917ed58a8 API: Tests with various clients, small fixes 2021-06-10 06:26:34 +00:00
Michael e7bc908655 Renaming the date format to "JSON" 2021-06-02 03:32:42 +00:00
Michael 5bd51b156a API: Fix date format 2021-06-01 22:32:05 +00:00
Michael 4ac68394c3 Fix warning "reset() expects parameter 1 to be array, null given" 2021-05-23 16:37:34 +00:00
Hypolite Petovan 48a783c91a
Merge pull request #10300 from annando/issue-10264
Issue 10264: Remote comments for visitors
2021-05-23 12:00:53 -04:00
Michael 050bc673aa Issue 10264: Remote comments for visitors 2021-05-23 10:39:11 +00:00
Philipp 965cd8b096
Fix PHP 7.0 Coding Standards 2021-05-22 23:47:35 +02:00
Michael 3d65ef3af2 Indentions 2021-05-19 22:20:56 +00:00
Michael 70259965df API: Support for private mails 2021-05-19 21:56:50 +00:00
Michael f001f52e39 API: Fix relationships 2021-05-15 15:02:15 +00:00
Michael 45c2cc3887 API: Account actions 2021-05-14 21:51:32 +00:00
Michael 55919dbd06 API: The instance record had got a malformatted value 2021-05-14 05:09:11 +00:00
Michael 132e08edb8 Whitespaces ... 2021-05-13 11:33:07 +00:00
Michael 7975bc244d Refine OAuth flow 2021-05-13 11:26:56 +00:00
Michael e9fe92a5d7 Merge remote-tracking branch 'upstream/develop' into api-again 2021-05-11 21:21:32 +00:00
Hypolite Petovan cac038639d Capitalize post action translation strings 2021-05-11 16:01:07 -04:00
Michael bade0a2345 Improved cards handling, simplified Bearer handling 2021-05-11 19:15:05 +00:00
Michael 82003bbe47 Login prototype 2021-05-11 06:30:20 +00:00
Tobias Diekershoff 7789ea2507
Merge pull request #10228 from MrPetovan/bug/warnings
[PHP 8] Fix undefined template variables
2021-05-11 06:10:29 +02:00
Hypolite Petovan 10e5630988 Don't assume $a->contact is populated in Object\Post::getCommentBox
- Address https://github.com/friendica/friendica/issues/10167#issuecomment-837238584
- This might reveal some side-effect
2021-05-10 22:03:51 -04:00
Hypolite Petovan 9ef9fc7c14 Skip URL-less mention terms in Object\Post::getDefaultText
- Address https://github.com/friendica/friendica/issues/10167#issuecomment-830859710
- Added logging to troubleshoot deeper issue
2021-05-10 21:50:42 -04:00
Hypolite Petovan 2c6bf754d5 Fix undefined variables in wall_thread.tpl
- Remove unused "num_comments_text" template variable
- Remove unused "item.postops" template variable mention
2021-05-10 18:59:09 -04:00
Michael 585d283ff9 Preparation for Oauth client registration 2021-05-09 22:23:21 +00:00
Michael 7a576111c7 Code styling 2021-05-09 11:56:34 +00:00
Michael cc5d4db6a3 Notifications are now supported as well 2021-05-09 11:50:05 +00:00
Michael 5bb5c44bd9 API: added account related endpoints 2021-05-09 09:35:51 +00:00
Hypolite Petovan 98c2ca34f5 Remove block/ignore links from contact/item action menus for self 2021-05-04 08:45:27 -04:00
Michael 238adabefb Catch Imagick errors
See https://github.com/friendica/friendica/issues/9747#issuecomment-809675750
2021-04-12 12:37:11 +00:00
Balázs Úr 054c301ef0 Update copyright 2021-03-29 08:40:20 +02:00
Michael e98d11a9ae Limit the size of contact avatars 2021-03-26 06:56:08 +00:00
Michael 5bbcb8bdf4 ActivityPub: Delete Comments 2021-03-24 22:22:14 +00:00
Michael e6f4ed47e2 Avoid error "Uncaught ImagickException: Unable to scale image" 2021-03-23 20:01:32 +00:00
Michael 2bbfbd57b0 Only offer "ignore thread" when there is a need for this 2021-02-28 11:20:02 +00:00
Michael 312c01a517 Several speed improvements (magiclink, caching, indexes) 2021-02-17 18:59:19 +00:00
Michael 890d1057d2 No implicit mention for top level Diaspora comments 2021-02-16 07:20:41 +00:00
Michael c1d99d6c4c Most user-item traces removed 2021-01-31 23:37:34 +00:00
Michael Vogel 199f72ee3c
Merge pull request #9823 from MrPetovan/task/9677-2fa-remember-device
Add "Remember this device" feature to two factor authentication
2021-01-27 22:32:08 +01:00
Michael ef0400fc19 "uri-id" instead of "uri" or "id" 2021-01-27 10:01:42 +00:00
Hypolite Petovan 82e094179c Rename notify classes according the feature name, not the table name 2021-01-24 09:33:23 -05:00
Hypolite Petovan 0fc5f26ff7 Replace BaseEntity with BaseDataTransferObject class for API representation classes 2021-01-23 05:42:58 -05:00
Hypolite Petovan 6b0df74ed7 Add blocking author from an item context feature 2021-01-23 05:30:03 -05:00
Michael b892db0cf3 All item selects are now done by the post class 2021-01-19 07:23:01 +00:00
Michael 4157db5473 "item" is replaced by "post-view" / postupdate check added 2021-01-17 20:32:13 +00:00
Hypolite Petovan e68f7444ed
Improve class alias naming in Object\Post 2021-01-16 08:12:41 -05:00
Michael 2fa692bcce New post class in the rest of the classes 2021-01-16 04:16:09 +00:00
Hypolite Petovan c8604895c4 [frio] Add share dropdown to mobile post view
- This should prevent accidental taps from resharing content unwittingly
2021-01-07 10:13:40 -05:00
Hypolite Petovan 8b3ab4e6bb Refactor builtin_activity_puller() and format_like()
- Simplify output array
- Rename format_like() to format_activity()
- Remove duplicate parameters in format_activity()
2020-11-21 11:08:44 -05:00
Michael ba4685dfb1 API: Support for reshared items 2020-11-01 11:01:57 +00:00
Michael c030275815 API: accounts and trends 2020-10-31 22:32:26 +00:00
Michael 752f5b09d7 Use the raw body if not null 2020-10-31 16:32:41 +00:00
Michael e6030e5f82 API: Media attachments are now supported 2020-10-31 16:10:27 +00:00
Michael a012234d82 Publish the provider fields in the API 2020-10-26 19:40:09 +00:00
Michael 44a4b66539 Improved self contact detection 2020-10-25 20:40:25 +00:00
Michael d8d96e6e61 Display the user fields for the admin account 2020-10-25 20:32:45 +00:00
Michael 463f8ee3f3 Use lowercase for tags 2020-10-25 17:59:28 +00:00
Michael 825189e8e9 Don't publish some fields 2020-10-25 17:42:42 +00:00
Michael 72efcc8169 "locked" is boolean 2020-10-25 16:59:38 +00:00
Michael 13b14bff91 Return 'null' on empty card 2020-10-25 16:55:05 +00:00