url cleaner

Related tags

Web Servers clink
Overview

Clink

Have you ever pasted a link in messenger and deleted all those fbclid, utm_source, and so on, GET params by hands? Clink does that for you.

It sits quietly in the background, and if you copy a link to the clipboard, Clink automatically removes those params for you.

Config

In 0.4.0, we introduced the toml config. Clink will create a "clink.toml" file in a directory where the executable is located on a first-run. In this file, you will find the default config for Clink.

# You can find detail description of modes bellow
# one of: remove, your_mom, evil
mode = 'remove' 
# Text for your_mom mode  
your_mom = 'your_mom' 
# If true in your_mom mode, Clink will automatically switch to the remove mode in Mother's Day. 
except_mothers_day: true,
# How often Clink will check clipboard in milliseconds
sleep_duration = 150
# Which GET params Clink should update
params = [
    'fbclid', # Facebook click identifier
    'gclid', # Google click identifier
    'gclsrc', # Google Ads
    'dclid', # DoubleClick click identifier (now Google)
    'zanpid', # zanox click identifier (now Awin)
    'utm_source', # Identifies which site sent the traffic 
    'utm_campaign', # Identifies a specific product promotion or strategic campaign
    'utm_medium', # Identifies what type of link was used
    'utm_term', # Identifies search terms
    'utm_content', Identifies what specifically was clicked to bring the user to the site
]

Modes

  • remove - removes params from links in clipboard
  • your_mom - Sets values to "your_mom" (inspired by this tweet)
  • evil - swap two random chars in values (Diabolical Laughter)

Build

Linux

Make sure that you have libxcb-composite0-dev installed

sudo apt-get install libxcb-composite0-dev

MacOs

Works right away

Windows

Should work but not tested, yet.

Comments
  • Bump chrono from 0.4.22 to 0.4.23

    Bump chrono from 0.4.22 to 0.4.23

    Bumps chrono from 0.4.22 to 0.4.23.

    Release notes

    Sourced from chrono's releases.

    0.4.23 is the next 0.4 release of the popular chrono date and time library for Rust. After the 0.4.20-0.4.22 series that brought chrono back to life after a long hiatus, development has been fairly quiet, allowing us to start planning changes for the 0.5.0 release. As such, we've started deprecating some APIs that are likely to be removed in 0.5. If you have any feedback on these changes, please let us know in the issue tracker!

    Deprecations

    • Deprecate methods that have an _opt() alternative (#827)
    • Deprecate usage of the Date<Tz> type (#851)

    Features

    • Optimize RFC 3339 (and RFC 2822) encoding (#844, thanks to @​conradludgate)
    • Addition and subtraction with the Days type (#784)
    • Add NaiveDateTime::from_timestamp_millis(_opt) (#818, thanks to @​Pscheidl -- backported in #823)
    • Allow for changing TZ variable and cache it for Local timezone (#853)
    • Add optional support for the arbitrary::Arbitrary trait (#849, thanks to @​greyblake and @​asayers)

    Fixes

    • Support tzdb location on AIX (#826)
    • Fix warnings in documentation (#847)

    On behalf of @​esheppa and @​djc, thanks to all contributors!

    Commits
    • 9e5eb49 Bump version to 0.4.23
    • dc4287a store hash of environment variable
    • 57908e9 allow sharing of the allocated environment variable
    • 84f3c30 move last_changed to the Cache
    • 8bc4139 add bench for Local::now()
    • 22b4d32 Avoid use of deprecated API
    • 77317d5 Deprecate usage of the Date<Tz> type
    • 7ba090d Add TimeZone::with_ymd_and_hms() helper method
    • 03165c8 Move Date::years_since() implementation into NaiveDate
    • 645fca0 chore: apply clippy suggestions for 1.65
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 1
  • Bump url from 2.2.2 to 2.3.0

    Bump url from 2.2.2 to 2.3.0

    Bumps url from 2.2.2 to 2.3.0.

    Commits
    • 35abc32 Merge pull request #791 from servo/ver_2.3.0
    • 25266fc Bump url version to 2.3.0
    • 587e962 Merge pull request #790 from crowlKats/remove_idna
    • eaa23e5 remove IDNA feature
    • a3df365 feat(url): add quirks::internal_components (#788)
    • 868719d Merge pull request #734 from andrewbanchich/fix-set-host
    • eb3f20d Fix setting file hosts to None
    • 6e5df8f perf(idna): fast-path simple/ascii domains (#761)
    • 1d307ae Merge pull request #787 from jiftoo/query-pairs-patch
    • 4c5e4ee fix unclosed doctest
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 1
  • Bump chrono from 0.4.19 to 0.4.21

    Bump chrono from 0.4.19 to 0.4.21

    Bumps chrono from 0.4.19 to 0.4.21.

    Release notes

    Sourced from chrono's releases.

    0.4.21 is a bugfix release that mainly fixes one regression from 0.4.20:

    • Fall back to UTC in case no timezone is found. Unfortunately this is a regression from the changes we made in 0.4.20 where we now parse the timezone database ourselves. Before 0.4.20, TimeZone::now() fell back to UTC in the case it could not find the current timezone, but the new implementation panicked in that case.
    • Correctly detect timezone on Android (also #756). Android does have the timezone database installed, but it's in a different path, and it does not use /etc/localtime to keep track of the current timezone. Instead we now use the iana-time-zone crate as a dependency, since it already has quite a bit of logic for finding the current timezone on a host of platforms.

    Additionally, there is a documentation fix that reverts an incorrect guarantee:

    • Document that %Y can have a negative value, both in formatting and in parsing (#760, thanks to @​alex)

    0.4.20

    chrono is a date and time library for Rust and 0.4.20 is the first chrono release since Sep 2020. There has been a long hiatus since the previous maintainer was no longer able to spend much time on the crate; thanks to @​quodlibetor for their stewardship of the chrono crate for many years! The new maintainers are @​djc and @​esheppa. Our first priority has been fixing the soundness issues with calls to localtime_r() as first reported in #499 and the RUSTSEC-2020-0159 advisory. In order to do this we adapted code from the tz-rs crate maintained by @​x-hgg-x for use within chrono -- thanks for working on that! With the new implementation, chrono uses safe Rust code to parse the timezone data files on Unix platforms directly instead of relying on libc.

    Due to compatibility reasons, this release does not yet remove the time 0.1 dependency, though chrono 0.4.20 does not depend on the vulnerable parts of the time 0.1.x versions. In a future 0.5 release, we will remove the time dependency.

    The minimum supported Rust version for 0.4.20 is 1.32.0, which is intentionally still quite conservative. If you are using chrono 0.4 with a Rust version older than 1.52, we'd like to hear from you since we'd like to further modernize the code base to ease maintenance.

    Fixes

    • Fix unsound call to localtime_r() by parsing timezone files in Rust on Unix (#677 and #728)
    • Allow RFC 2822 parser to deal with comments (#733 then #737, thanks to @​Finomnis)
    • Avoid panicking during parsing (#686, thanks to @​botahamec)
    • Avoid panics when rounding durations (#659, thanks to @​ARBaart)
    • Fix Duration::abs() behavior in case of negative durations with nanoseconds (#734, thanks to @​abreis)

    Additions

    Non-functional improvements

    • Improve CI to better exercise WASM targets (#662, thanks to @​AmateurECE)
    • More WASM testing improvements, enable dependencies by default (#746)
    • Fix compiling for wasm32-unknown-emscripten target (#568, thanks to @​orion78fr)
    • Use stub implementation for anything not unix and not windows (#593, thanks to @​yu-re-ka)
    • Remove now unused libc dependency (#710, thanks to @​metent)
    • Clean up some clippy warnings (#721, thanks to @​botahamec)
    • Clarify documentation for Utc::now() (#647, thanks to @​ModProg)

    ... (truncated)

    Changelog

    Sourced from chrono's changelog.

    ChangeLog for Chrono

    This documents all notable changes to Chrono.

    Chrono obeys the principle of Semantic Versioning, with one caveat: we may move previously-existing code behind a feature gate and put it behind a new feature. This new feature will always be placed in the previously-default feature, which you can use to prevent breakage if you use no-default-features.

    There were/are numerous minor versions before 1.0 due to the language changes. Versions with only mechanical changes will be omitted from the following list.

    0.4.20 (unreleased)

    • Add more formatting documentation and examples.
    • Add support for microseconds timestamps serde serialization/deserialization (#304)
    • Fix DurationRound is not TZ aware (#495)
    • Implement DurationRound for NaiveDateTime
    • Implement std::iter::Sum for Duration
    • Add DateTime::from_local() to construct from given local date and time (#572)
    • Add a function that calculates the number of years elapsed between now and a given Date or DateTime (#557)
    • Correct build for wasm32-unknown-emscripten target (#568)
    • Change Local::now() and Utc::now() documentation from "current date" to "current date and time" (#647)
    • Fix duration_round panic on rounding by Duration::zero() (#658)
    • Add optional rkyv support.
    • Add support for microseconds timestamps serde serialization for NaiveDateTime.
    • Add support for optional timestamps serde serialization for NaiveDateTime.
    • Fix build for wasm32-unknown-emscripten (@​yu-re-ka #593)
    • Make ParseErrorKind public and available through ParseError::kind() (#588)
    • Implement DoubleEndedIterator for NaiveDateDaysIterator and NaiveDateWeeksIterator
    • Fix panicking when parsing a DateTime (@​botahamec)
    • Add support for getting week bounds based on a specific NaiveDate and a Weekday (#666)
    • Remove libc dependency from Cargo.toml.
    • Add the and_local_timezone method to NaiveDateTime
    • Fix the behavior of Duration::abs() for negative durations with non-zero nanos
    • Add compatibility with rfc2822 comments (#733)
    • Make js-sys and wasm-bindgen enabled by default when target is wasm32-unknown-unknown for ease of API discovery
    • Add the Months struct and associated Add and Sub impls
    Commits
    • 2d22e57 Bump version number to 0.4.21
    • 557bcd5 handle missing /etc/localtime on some unix platforms (#756)
    • 5edf4d0 fixes #758 -- correctly document that %Y parses negative years (#760)
    • a185d3b Remove unnecessary try_opt!() macro
    • 0b7feac Clean up some unreachable_pub warnings
    • 65f1f2e Bump version to 0.4.20
    • bd3b48d Revise Months API
    • ab688c3 Implement Add\<Months> and Sub\<Months> for NaiveDate (#731)
    • 782f904 Clarify docs for DateTime::with_timezone
    • 27c0558 dont use stub.rs when wasmbind feature is enabled
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 1
  • Bump chrono from 0.4.19 to 0.4.20

    Bump chrono from 0.4.19 to 0.4.20

    Bumps chrono from 0.4.19 to 0.4.20.

    Release notes

    Sourced from chrono's releases.

    0.4.20

    chrono is a date and time library for Rust and 0.4.20 is the first chrono release since Sep 2020. There has been a long hiatus since the previous maintainer was no longer able to spend much time on the crate; thanks to @​quodlibetor for their stewardship of the chrono crate for many years! The new maintainers are @​djc and @​esheppa. Our first priority has been fixing the soundness issues with calls to localtime_r() as first reported in #499 and the RUSTSEC-2020-0159 advisory. In order to do this we adapted code from the tz-rs crate maintained by @​x-hgg-x for use within chrono -- thanks for working on that! With the new implementation, chrono uses safe Rust code to parse the timezone data files on Unix platforms directly instead of relying on libc.

    Due to compatibility reasons, this release does not yet remove the time 0.1 dependency, though chrono 0.4.20 does not depend on the vulnerable parts of the time 0.1.x versions. In a future 0.5 release, we will remove the time dependency.

    The minimum supported Rust version for 0.4.20 is 1.32.0, which is intentionally still quite conservative. If you are using chrono 0.4 with a Rust version older than 1.52, we'd like to hear from you since we'd like to further modernize the code base to ease maintenance.

    Fixes

    • Fix unsound call to localtime_r() by parsing timezone files in Rust on Unix (#677 and #728)
    • Allow RFC 2822 parser to deal with comments (#733 then #737, thanks to @​Finomnis)
    • Avoid panicking during parsing (#686, thanks to @​botahamec)
    • Avoid panics when rounding durations (#659, thanks to @​ARBaart)
    • Fix Duration::abs() behavior in case of negative durations with nanoseconds (#734, thanks to @​abreis)

    Additions

    Non-functional improvements

    0.4.20-rc.1

    0.4.20 is the first chrono release since Sep 2020. There has been a long hiatus since the previous maintainer was no longer able to spend much time on the crate; thanks to @​quodlibetor for their stewardship of the chrono crate for many years! The new maintainers are @​djc and @​esheppa. Our first priority has been fixing the soundness issues with calls to localtime_r() as first reported in #499 and the RUSTSEC-2020-0159 advisory. In order to do this we adapted code from the tz-rs crate maintained by @​x-hgg-x for use within chrono -- thanks for working on that! With the new implementation, chrono uses safe Rust code to parse the timezone data files on Unix platforms directly instead of relying on libc.

    ... (truncated)

    Changelog

    Sourced from chrono's changelog.

    0.4.20 (unreleased)

    • Add more formatting documentation and examples.
    • Add support for microseconds timestamps serde serialization/deserialization (#304)
    • Fix DurationRound is not TZ aware (#495)
    • Implement DurationRound for NaiveDateTime
    • Implement std::iter::Sum for Duration
    • Add DateTime::from_local() to construct from given local date and time (#572)
    • Add a function that calculates the number of years elapsed between now and a given Date or DateTime (#557)
    • Correct build for wasm32-unknown-emscripten target (#568)
    • Change Local::now() and Utc::now() documentation from "current date" to "current date and time" (#647)
    • Fix duration_round panic on rounding by Duration::zero() (#658)
    • Add optional rkyv support.
    • Add support for microseconds timestamps serde serialization for NaiveDateTime.
    • Add support for optional timestamps serde serialization for NaiveDateTime.
    • Fix build for wasm32-unknown-emscripten (@​yu-re-ka #593)
    • Make ParseErrorKind public and available through ParseError::kind() (#588)
    • Implement DoubleEndedIterator for NaiveDateDaysIterator and NaiveDateWeeksIterator
    • Fix panicking when parsing a DateTime (@​botahamec)
    • Add support for getting week bounds based on a specific NaiveDate and a Weekday (#666)
    • Remove libc dependency from Cargo.toml.
    • Add the and_local_timezone method to NaiveDateTime
    • Fix the behavior of Duration::abs() for negative durations with non-zero nanos
    • Add compatibility with rfc2822 comments (#733)
    • Make js-sys and wasm-bindgen enabled by default when target is wasm32-unknown-unknown for ease of API discovery
    • Add the Months struct and associated Add and Sub impls
    Commits
    • 0b7feac Clean up some unreachable_pub warnings
    • 65f1f2e Bump version to 0.4.20
    • bd3b48d Revise Months API
    • ab688c3 Implement Add\<Months> and Sub\<Months> for NaiveDate (#731)
    • 782f904 Clarify docs for DateTime::with_timezone
    • 27c0558 dont use stub.rs when wasmbind feature is enabled
    • 56f80e4 run on all branches and also for changes in the ci folder
    • 353f179 Implement std::error::Error for ParseWeekdayError
    • 309cbeb Fixed typo in deprecation notice
    • 26e231a Bump version to 0.4.20-rc.1
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 1
  • Bump serde from 1.0.140 to 1.0.142

    Bump serde from 1.0.140 to 1.0.142

    Bumps serde from 1.0.140 to 1.0.142.

    Release notes

    Sourced from serde's releases.

    v1.0.142

    • Add keywords to crates.io metadata

    v1.0.141

    • Add no-std category to crates.io metadata
    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 1
  • Bump serde from 1.0.140 to 1.0.141

    Bump serde from 1.0.140 to 1.0.141

    Bumps serde from 1.0.140 to 1.0.141.

    Release notes

    Sourced from serde's releases.

    v1.0.141

    • Add no-std category to crates.io metadata
    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 1
  • Improving the config handling

    Improving the config handling

    Currently, the config has to be at the exact same location as the executable, this bring some problems and is generally not the best way to handle configs. You can't install the binary in /usr/bin and use clink as user, because /usr/bin is not writable as user. Also users probably want their own configuration each. I'd place the configuration in ~/.config/clink/clink.toml. In addition a cli flag like -c or --config would help as well.

    opened by JojiiOfficial 1
  • Bump serde from 1.0.151 to 1.0.152

    Bump serde from 1.0.151 to 1.0.152

    Bumps serde from 1.0.151 to 1.0.152.

    Release notes

    Sourced from serde's releases.

    v1.0.152

    • Documentation improvements
    Commits
    • ccf9c6f Release 1.0.152
    • b25d0ea Link to Hjson data format
    • 4f4557f Link to bencode data format
    • bf400d6 Link to serde_tokenstream data format
    • 4d2e36d Wrap flexbuffers bullet point to 80 columns
    • df6310e Merge pull request #2347 from dtolnay/docsrs
    • 938ab5d Replace docs.serde.rs links with intra-rustdoc links
    • ef5a0de Point documentation links to docs.rs instead of docs.serde.rs
    • 5d186c7 Opt out -Zrustdoc-scrape-examples on docs.rs
    • See full diff in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 0
  • Bump serde from 1.0.150 to 1.0.151

    Bump serde from 1.0.150 to 1.0.151

    Bumps serde from 1.0.150 to 1.0.151.

    Release notes

    Sourced from serde's releases.

    v1.0.151

    • Update serde::{ser,de}::StdError to re-export core::error::Error when serde is built with feature="std" off and feature="unstable" on (#2344)
    Commits
    • 44bf363 Release 1.0.151
    • f261184 Merge pull request #2344 from dtolnay/coreerror
    • df40f80 Make StdError identical to core::error::Error on feature="unstable"
    • e7060ba Merge pull request #2342 from atouchet/badges
    • d98f0ee Update build status badge
    • 4f157a8 Prevent build.rs rerunning unnecessarily on all source changes
    • See full diff in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 0
  • Bump toml from 0.5.9 to 0.5.10

    Bump toml from 0.5.9 to 0.5.10

    Bumps toml from 0.5.9 to 0.5.10.

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 0
  • Bump serde from 1.0.149 to 1.0.150

    Bump serde from 1.0.149 to 1.0.150

    ⚠️ Dependabot is rebasing this PR ⚠️

    Rebasing might not happen immediately, so don't worry if this takes some time.

    Note: if you make any changes to this PR yourself, they will take precedence over the rebase.


    Bumps serde from 1.0.149 to 1.0.150.

    Release notes

    Sourced from serde's releases.

    v1.0.150

    • Relax some trait bounds from the Serialize impl of HashMap and BTreeMap (#2334)
    • Enable Serialize and Deserialize impls of std::sync::atomic types on more platforms (#2337, thanks @​badboy)
    Commits
    • d493649 Release 1.0.150
    • 0e947e6 Merge pull request #2338 from serde-rs/atomic
    • 9249dab Deduplicate atomic_impl macro calls
    • 7440e56 Deduplicate atomic_impl macro implementations
    • 0d79306 Update atomic_impl macros to have same input syntax in all cfgs
    • 37faaf2 Mention target_has_atomic stabilization
    • 650358f Replace obsolete comment about target_has_atomic support
    • 6159ead Invert use_target_has_atomic cfg
    • 692ac99 Format PR 2337 with rustfmt
    • 86161ce Adjust spacing in some macro matchers
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 0
  • URL corruption

    URL corruption

    Description:

    Clink “corrupts” URL if the query part contains a character from the unwise set of characters. By corrupts, I mean percent encodes characters like “[“ or “]”. This is fine if you live in a world where all URLs obey https://url.spec.whatwg.org/, but I see URLs like https://foo.foo/?param[]=1&param[]=2 in the wild.

    The problem is if you have clink in the background and copied URL like that you will get https://foo.foo/?param%5B%5D=1&param%5B%5D=2 which is a bug from the user point of view.

    Why?

    Clink internally uses url crate for URL manipulation. It percent encodes keys and values when you append pair to a query without the possibility to opt out.

    What to do?

    1. find an alternative to url crate
    2. make a pull request with opt-out (highly unlikely it will be accepted because the crate follows the spec)
    3. fork and use that fork (i do not like the idea of supporting that kind of fork)
    4. let’s say it is a feature.
    opened by Lurk 0
  • Systemd service file

    Systemd service file

    I think it's more about packaging, but a simple systemd service file would accompany clink nicely

    Sample ~/.config/systemd/user/clink.service I got for myself:

    [Unit]
    Description=Clink - cleans links in clipboard from utm_<shit>
    
    [Service]
    ExecStart=/usr/bin/clink
    
    [Install]
    WantedBy=multi-user.target
    
    sudo systemctl daemon-reload
    systemctl --user enable --now clink.service
    

    and clink will do the job by itself, no maintenance needed.

    opened by murlakatamenka 1
Releases(0.6.4)
Owner
Serhiy Barhamon
Serhiy Barhamon
url cleaner

Clink Have you ever pasted a link in messenger and deleted all those fbclid, utm_source, and so on, GET params by hands? Clink does that for you. It s

Serhiy Barhamon 19 Dec 14, 2022
Ocy project cleaner

Ocy project cleaner Ocy is a simple, temporary build files cleaner CLI written in Rust. Colophon Ocy is short for Ocypode cordimanus, or smooth-handed

Alexandre Delattre 14 Sep 5, 2022
Media Cleaner is a simple CLI tool to clean up your media library based on your Overseerr requests and Tautulli history, written in Rust.

Media Cleaner Media Cleaner is a simple CLI tool to clean up your media library based on your Overseerr requests and Tautulli history, written in Rust

Felix Bjerhem Aronsson 21 Mar 22, 2023
A simple, C-like, ternary operator for cleaner syntax.

A simple ternary operator macro in rust. the iff! macro is the only item exported by this crate, it simply takes three expressions, seperated by ? and

KaitlynEthylia 42 May 23, 2023
url parameter parser for rest filter inquiry

inquerest Inquerest can parse complex url query into a SQL abstract syntax tree. Example this url: /person?age=lt.42&(student=eq.true|gender=eq.'M')&

Jovansonlee Cesar 25 Nov 2, 2020
A very-very simple url shortener for Rust

urlshortener-rs A very simple urlshortener for Rust. This library aims to implement as much URL shortener services as possible and to provide an inter

Victor Polevoy 39 Nov 20, 2022
Obsidian Plugin: Convert a URL into markdown

Obsidian Plugin: Convert a URL into markdown Transforms a URL to markdown view if the website allows it. Installation Available in the community plugi

Stephen Solka 142 Jan 3, 2023
A mini paste bin and url shortener written in rust without databases.

pb Build $ cargo build --release Environment Variables PB_DATA: /some/path (Default: ./pb_data) PB_SITE: Url of your site. (Default: http://localhost:

Edward P 5 Jul 26, 2022
image url web-scrapper written in rust

imgs - CLI Webscrapper image url web-scrapper written in rust This is a cli application completely written in rust, it aim is to scrap image-url from

Michael Olayemi 1 Apr 2, 2022
A command-line tool aiming to upload the local image used in your markdown file to the GitHub repo and replace the local file path with the returned URL.

Pup A command line tool aiming to upload the local image used in your markdown file to the GitHub repo and replace the local file path with the return

SteveLau 11 Aug 17, 2022
A URL shortener that uses emojis, only emojis.

emojied Shorten your URLs with emojis! Features Well, shorten your URLs! Customize what emoji to use. e.g Want to use an eggplant emoji? Sure, as long

SEKUN 99 Dec 31, 2022
Small crate to work with URL in miniquad/macroquad.

quad-url This is the crate to work with URL and open links in miniquad/macroquad environment. Web demo. Usage Add this to your Cargo.toml dependencies

ilya sheprut 3 Jun 11, 2022
Shurly, this is a URL shortener with API management

Shurly Shurly, this is a URL shortener with API management Features Management of destinations through a REST'ish API Permanent/temporary redirects; p

WorkplaceBuddy 3 Nov 30, 2022
A dead simple human-writable URL redirector based loosely on google's `go/` system.

Redirector a redirector written in rust intended for permanent human-readable redirects. The idea was semi-inspired by the book Software Engineering a

Jan Harasym 4 Dec 14, 2022
Enum path && dir on target URL. Powered by Rust ! 🦀

enum-dir 一款快速枚举目录的小工具,使用 Rust 编写,扫起来真的很快。 用于发现目标站点中可能存在的路径信息,同时支持字典模式和暴力枚举模式。 本工具仅用于学习 Rust 以及 Rust 协程 Tokio 使用,严禁用于非法用途。 如果使用本工具从事违法犯罪活动,造成的任何后果,本人不承

lightless 9 Nov 20, 2022
A modest URL shortener for personal usage.

bref A modest URL shortener for personal usage. Shortens URLs to a 6 characters-length key that is generated based on current time. Why? Why not? Usag

Nicolas Gryman 3 Oct 8, 2023
🦀 A Rust CLI to find the optimal time to meet given a when2meet URL

when3meet ?? The Rust when2meet CLI Install | Usage | Contributing & Issues | Docs Built with ❤️ and ?? by Garrett Ladley Install cargo install when3m

Garrett Ladley 4 Sep 18, 2023
Get URL(s) title in any format 🐿️

Tyupy Get URL(s) title in any format. Features Get URL(s) title in any format*. Markdown Org-mode Fancy error message and colorful output. Cross-platf

Azzam S.A 7 Nov 27, 2023