@@ -23,7 +23,7 @@ use std::env;
2323use std:: io:: { Read , Write } ;
2424use std:: str:: FromStr ;
2525use std:: string:: ToString ;
26- use std:: sync:: { LazyLock , Mutex } ;
26+ use std:: sync:: { Arc , LazyLock } ;
2727use time:: { macros:: format_description, Duration , OffsetDateTime } ;
2828use url:: Url ;
2929
@@ -622,7 +622,7 @@ pub struct Params {
622622}
623623
624624#[ derive( Default , Serialize , Deserialize , Debug , PartialEq , Eq ) ]
625- #[ revisioned( revision = 1 ) ]
625+ #[ revisioned( revision = 2 ) ]
626626pub struct Preferences {
627627 #[ revision( start = 1 ) ]
628628 #[ serde( skip_serializing, skip_deserializing) ]
@@ -671,7 +671,7 @@ pub struct Preferences {
671671 pub hide_score : String ,
672672 #[ revision( start = 1 ) ]
673673 pub remove_default_feeds : String ,
674- #[ revision( start = 1 ) ]
674+ #[ revision( start = 2 ) ]
675675 pub clean_urls : String ,
676676}
677677
@@ -1080,7 +1080,7 @@ pub fn format_url(url: &str) -> String {
10801080}
10811081
10821082// Remove tracking query params
1083- static URL_CLEANER : LazyLock < Mutex < UrlCleaner > > = LazyLock :: new ( || Mutex :: new ( UrlCleaner :: from_embedded_rules ( ) . expect ( "Failed to initialize UrlCleaner" ) ) ) ;
1083+ static URL_CLEANER : LazyLock < Arc < UrlCleaner > > = LazyLock :: new ( || Arc :: new ( UrlCleaner :: from_embedded_rules ( ) . expect ( "Failed to initialize UrlCleaner" ) ) ) ;
10841084
10851085pub fn clean_url ( url : String ) -> String {
10861086 let is_external_url = match Url :: parse ( url. as_str ( ) ) {
@@ -1089,8 +1089,10 @@ pub fn clean_url(url: String) -> String {
10891089 } ;
10901090 let mut cleaned_url = url. clone ( ) ;
10911091 if is_external_url {
1092- let cleaner = URL_CLEANER . lock ( ) . unwrap ( ) ;
1093- cleaned_url = cleaner. clear_single_url_str ( cleaned_url. as_str ( ) ) . expect ( "Unable to clean the URL." ) . as_ref ( ) . to_owned ( ) ;
1092+ cleaned_url = match URL_CLEANER . clear_single_url_str ( cleaned_url. as_str ( ) ) {
1093+ Ok ( cleaned_result) => cleaned_result. as_ref ( ) . to_owned ( ) ,
1094+ _ => cleaned_url,
1095+ }
10941096 }
10951097 cleaned_url
10961098}
@@ -1675,9 +1677,9 @@ fn test_default_prefs_serialization_loop_bincode() {
16751677}
16761678
16771679static KNOWN_GOOD_CONFIGS : & [ & str ] = & [
1678- "ਧӐΥºÃΦĴгౡୡϤҚԷŽဎՐΧΣೡຽဒ೨ʛĽତ๘Ӓǹভµɾ൦ॴцৱ௬చΣҭжҭȱȾཊజĊȔ௸७ƘȂј۰ȥėǨԯၻíႽਈႴ۹ଆ " ,
1679- "ਧҫടºÃǒɣυໃਣөŕǁజ८ௐɪDžઘႴ౨ඛႻຫǪၼդɍ৪Êѕ୶ʭѹŪҚຊೱѰງიŠСঌາඌĨğਜડ࿅ଠಲೱҋŇƞਭăʁझшȖǾཔ௧ந۞ສÚ " ,
1680- "ਧҫടºÃǒɿဧϯljഔค๖۞ԆНȦ൨ĭ྅ҤƍตཧႯƅशञঊମਇȕමзқଽijჰଐՋບӎՓஶཕ૭ଛกήऋĜɀಱӔԩझԩîဓŒԬũլಙટщೞຝ৪༎ " ,
1680+ "ఴӅβØØҞÉဏႢձĬ༧ȒʯऌԔӵ୮༏ " ,
1681+ "ਧՊΥÀÃǎƱГ۸ඣമĖฤ႙ʟาúໜϾௐɥঀĜໃહཞઠѫҲɂఙ࿔DzઉƲӟӻĻฅΜδ໖ԜǗဖငƦơ৶Ą௩ԹʛใЛʃශаΏ " ,
1682+ "ਧԩΥÀÃΊ౭൩ඔႠϼҭöҪƸռઇԾॐნɔາǒՍҰच௨ಖມŃЉŐདƦ๙ϩএఠȝഽйʮჯඒϰळՋ௮ສ৵ऎΦѧਹಧଟƙŃ३î༦ŌပղयƟแҜ། " ,
16811683] ;
16821684
16831685#[ test]
0 commit comments