Matthias Gutjahr
1d2056e025
Add check for EpisodeAction properties
...
- also add type hints and phpdocs
- add additional unit tests
- set integer types in EpisodeActionEntity
- correctly call static methods
- improve exception handling in EpisodeActionSaver
- remove unused method EpisodeActionWriter::purge()
2021-11-03 13:51:26 +01:00
Jonathan Flueren
52b6d8e8a2
Add timestamp to subscription change response
2021-10-17 19:48:13 +02:00
thrillfall
76ee383ea4
remove unused VersionController
2021-10-13 22:54:15 +02:00
Jonathan Flueren
dae9f2a9ec
Change return value of migration to number of affected rows
2021-10-13 22:32:06 +02:00
Jonathan Flueren
6dd54198f6
Store epoch to correct entry, fix uninitialized variable
2021-10-13 22:32:06 +02:00
Jonathan Flueren
77571feb40
Update tests to new upload format
2021-10-06 19:40:52 +02:00
Jonathan Flueren
c6ee19a929
Ensure uppercase action in EpisodeAction upload
...
Background: action is lowercase in gpodder api description - gpoddersync always worked with uppercase action.
2021-10-06 19:40:52 +02:00
Jonathan Flueren
d131b59348
Align episode upload format to gpodder-api
...
'started', 'position' and 'total' are optional and 'timestamp' is in 'Y-m-d\TH:i:s' format
2021-10-06 19:40:52 +02:00
Jonathan Flueren
3534c43976
Adjust expected DateTime format to gpodder - UTC ISO 8601
2021-10-06 19:40:52 +02:00
Jonathan Flueren
795a9253d2
Adjust EpisodeAction upload to gpodder api, remove String upload
...
Remove 3rd dimension of POST data by directly accessing request data - a simple EpisodeActions array has to be posted now. This way the api is closer to gpodder.
Additionally, removed EpisodeAction upload as String, so it's now incompatible with older versions
2021-10-06 19:40:52 +02:00
Jonathan Flueren
7813339a95
Allow EpisodeAction upload as array
...
Parsing EpisodeActions from String can lead to problems if the String is changed by only a little bits.
Additionally, the gpodder api describes the upload as Array.
Uploading EpisodeActions as String is still possible.
2021-10-06 19:40:52 +02:00
Jonathan Flueren
896943ae67
Adjust RepairStep name to other RepairSteps in Nextcloud
...
All of them begin uppercase
2021-10-06 17:41:38 +02:00
Jonathan Flueren
d1513883d7
Use correct SQL syntax in repair step
...
One space was missing
2021-10-06 17:41:38 +02:00
thrillfall
1243a7144a
since we dont know from which version the update is being executed we always fix timestamps
2021-10-06 14:53:13 +02:00
thrillfall
414ad1a024
do not show internal id in response
2021-10-06 14:08:33 +02:00
thrillfall
499d11d209
query episode actions by unix timestamp (instead of datetime object)
2021-10-06 14:06:45 +02:00
thrillfall
9271a5063e
ensure dbal return types for mysql and sqlite database
2021-10-06 14:06:45 +02:00
thrillfall
871257ede2
make sure we always return int for episode_action.started
2021-10-06 14:06:45 +02:00
thrillfall
ac1acf079b
provide episode_action timestamps as UTC in api response
2021-10-06 14:06:45 +02:00
thrillfall
aa024e55f8
add new timestamp database field. add migration step to convert timestamps to unix epoch
2021-10-06 14:06:45 +02:00
thrillfall
fdc6a0db6d
drop redundant phpdoc
2021-08-29 13:14:40 +02:00
thrillfall
efa9280b91
we actively fix the guid so it is not asserting but ensuring
2021-08-29 13:14:40 +02:00
thrillfall
ff4798f6da
do not null EpisodeAction.guid when processing request without guid
2021-08-29 13:14:40 +02:00
thrillfall
3a3038711f
make retrievel episode actions without guid more explanatory
2021-08-29 13:14:40 +02:00
thrillfall
352802ca69
update existing episode actions with guid
2021-08-29 13:14:40 +02:00
thrillfall
850dfd5eb4
add guid to episode action and make it findable by it
2021-08-29 13:14:40 +02:00
thrillfall
ba0d4f4357
parse optional guid from EpisodeAction request
2021-08-29 13:14:40 +02:00
thrillfall
20a647906a
do not pass same data twice
2021-08-27 12:51:29 +02:00
Jonathan Flueren
e6637a0201
Use foreach for episode action strings, update variable names
2021-08-24 22:31:24 +02:00
Jonathan Flueren
cd17ad5079
Increase code quality, use explode instead of strpos/substr
...
Makes code phpdoc conform and changes to a better readable EpisodeActions parsing.
2021-08-24 22:31:24 +02:00
Jonathan Flueren
48b78669e6
Enable processing of multiple EpisodeActions
...
EpisodeAction/create now can deal with multiple EpisodeActions inside a single EpisodeAction string, they will be processed one after another.
For this EpisodeActionReader->fromString() now returns an array of EpisodeActions.
2021-08-24 22:31:24 +02:00
thrillfall
0f6ab73cf2
narrow catch to nextcloud dbal exceptions
2021-08-22 23:23:02 +02:00
thrillfall
029c010e2f
adapt table column length limit to episode actions like DOWNLOAD
2021-08-22 23:19:38 +02:00
thrillfall
ebe4757b5e
drop phpdoc
2021-08-22 22:57:33 +02:00
thrillfall
a29aa2ccd5
extract parsing and storing episode action to separate class
2021-08-22 22:45:34 +02:00
thrillfall
83c18ad623
narrow catch to nextcloud dbal exceptions
2021-08-22 21:59:45 +02:00
thrillfall
57f0691b4c
nextcloud < v22.0 throws UniqueConstraintViolationException. This can be reverted after v21 reaches end of support
2021-08-21 20:20:24 +02:00
thrillfall
ab155ca94a
fix inspection warnings
2021-08-17 19:41:54 +02:00
Jonathan Flueren
20920c5d84
Stop creating unnecessary log file in Nextcloud base folder
...
EpisodeActionReader created (or appended to) file actionreader.log in Nextcloud base folder (with index.php & occ). This concluded in a Nextcloud warning about "additional files in Nextcloud folder" in the self-check feature.
2021-08-16 14:20:21 +02:00
Jonathan Flueren
9ac7758e87
Correct empty timestamp check in createDateTimeFromTimestamp
...
createDateTimeFromTimestamp interpreted 0 as timestamp as a mistake while 0 is a valid timestamp.
The fix checks if timestamp is null (not defined/initialized), so that 0 is treated as a correct timestamp.
2021-08-12 15:27:58 +02:00
Jonathan Flueren
e438ae94dd
Revert change of timestamp format
...
Reverting the change of format of the timestamp that gets saved into episode_action table.
Reason: The 'T' was in there so that the timestamp format is like AntennaPod's timestamp format.
2021-07-24 20:11:42 +02:00
Jonathan Flueren
5a46233e46
Update EpisodeActionController.php
...
Use UTC timestamp for episode actions instead of the timezone used by the AntennaPod app.
Correct conversion should be assured because the AntennaPod timestamp includes a timezone identifier (T).
Also slightly change the output format for the DateTime-timestamp to equal other timestamp formats.
2021-07-24 19:06:14 +02:00
thrillfall
ad3b9c107d
convert timestamp from episode action request to format also mysql can process
2021-07-22 23:44:45 +02:00
thrillfall
324aecd7b8
make subscription changes endpoint comply with gpodder.net api
2021-07-13 21:36:34 +02:00
thrillfall
b09210655e
unique key violation exception is thrown as \Exception thus we need to check the reason
2021-07-11 22:52:30 +02:00
thrillfall
932fb8cd46
allow null/false value for boolean field
2021-07-08 19:29:40 +02:00
thrillfall
4af08367fc
remove redundant unique modifier since we already have unique index on that column
2021-07-08 12:37:55 +02:00
thrillfall
6a39f2d814
use correct table name in models
2021-07-06 21:47:06 +02:00
thrillfall
a810fcc8bc
shorten to long table names
2021-07-06 14:23:25 +02:00
thrillfall
92342f6d13
fixup! parse EpisodeAction message from AntennaPod
2021-07-05 10:22:29 +02:00