joshp23/YOURLS-Expiry

Custome Intercept Page doesn't work.

tarasinf opened this issue · 1 comments

YOURLS v 1.8.1
Expiry v 2.4.1

Settings:

Default Expiry Type is Timer
Expiry Intercept Behavior is Custome URL
Custome Intercept Page is https://google.com/ (I had to set it by SQL, as after UI set it was none)

Expected behaviour:

After expiration time & clicking on a short URL, the Original URL has to be changed to https://google.com/.
postexpire has to be set to https://google.com/.

Actual behaviour:

After expiration time & clicking on a short URL, the record disappears from the table.
postexpire set to none.

mysql> SELECT * FROM yourls_options;
+-----------+-------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| option_id | option_name                   | option_value                                                                                                                                                                                                                                                   |
+-----------+-------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|         1 | version                       | 1.9.2                                                                                                                                                                                                                                                          |
|         2 | db_version                    | 506                                                                                                                                                                                                                                                            |
|         3 | next_id                       | 3                                                                                                                                                                                                                                                              |
|         4 | active_plugins                | a:2:{i:0;s:27:"random-shorturls/plugin.php";i:1;s:17:"expiry/plugin.php";}                                                                                                                                                                                     |
|         5 | core_version_checks           | O:8:"stdClass":4:{s:15:"failed_attempts";i:0;s:12:"last_attempt";i:1695204144;s:11:"last_result";O:8:"stdClass":2:{s:6:"latest";s:5:"1.9.2";s:6:"zipurl";s:56:"https://api.github.com/repos/YOURLS/YOURLS/zipball/1.9.2";}s:15:"version_checked";s:5:"1.8.1";} |
|         6 | random_shorturls_length       | 10                                                                                                                                                                                                                                                             |
|         7 | expiry_global_expiry          | clock                                                                                                                                                                                                                                                          |
|         8 | expiry_default_click          | 50                                                                                                                                                                                                                                                             |
|         9 | expiry_default_age            | 2                                                                                                                                                                                                                                                              |
|        10 | expiry_default_age_mod        | min                                                                                                                                                                                                                                                            |
|        11 | expiry_intercept              | custome                                                                                                                                                                                                                                                        |
|        12 | expiry_custom                 | https://google.com/                                                                                                                                                                                                                                  |
|        13 | expiry_global_post_expire_chk | true                                                                                                                                                                                                                                                           |
|        14 | expiry_expose                 | true                                                                                                                                                                                                                                                           |
|        15 | expiry_table_drop             | false                                                                                                                                                                                                                                                          |
+-----------+-------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+

mysql> SELECT * FROM yourls_expiry;
+------------+-------+-------+------------+-----------+--------------------+
| keyword    | type  | click | timestamp  | shelflife | postexpire         |
+------------+-------+-------+------------+-----------+--------------------+
| kbyt953qku | clock | dummy | 1695290374 | 120       | none               |
+------------+-------+-------+------------+-----------+--------------------+


mysql> SELECT * FROM yourls_url;
+------------+---------------------------------------------------------+-------------------------------------------------------------------------------------------------------+---------------------+------------+--------+
| keyword    | url                                                     | title                                                                                                 | timestamp           | ip         | clicks |
+------------+---------------------------------------------------------+-------------------------------------------------------------------------------------------------------+---------------------+------------+--------+
| kbyt953qku | https://github.com/joshp23/YOURLS-Expiry/issues/43      | Custome Intercept Page doesn't work. � Issue #43 � joshp23/YOURLS-Expiry � GitHub                     | 2023-09-21 09:59:34 | 172.20.0.1 |      0 |
+------------+---------------------------------------------------------+-------------------------------------------------------------------------------------------------------+---------------------+------------+--------+

To fix the issue, I had to do the next changes. As in expiry_config under number 4 is expiry_global_post_expire thats not defined, and under number 1 in expiry_custom. Does it make sense?

  • In function expiry_check( $args ) {:
    $gpx = $opt[5] == 'false' ? null : $opt[4]; -> $gpx = $opt[5] == 'false' ? null : $opt[1];

  • In yourls_add_filter( 'add_new_link', function (:
    $gpx = $opt[5] == 'false' ? null : $opt[4]; -> $gpx = $opt[5] == 'false' ? null : $opt[1];