Remove the requirement on ordering for domains
This commit is contained in:
parent
55bfdb19e3
commit
303389de14
|
@ -49,8 +49,6 @@ queerings.gay
|
||||||
getonflop.xyz
|
getonflop.xyz
|
||||||
```
|
```
|
||||||
|
|
||||||
One restriction: If one site is a substring of another, the shorter site must go first. For example, if you have `unix.pub` and `unix.pub/~user`, `unix.pub` MUST be higher in the list than `unix.pub/~user`
|
|
||||||
|
|
||||||
Now, run the Faery Ring binary (or docker image) with the `.txt` file you just created as the first argument, like this:
|
Now, run the Faery Ring binary (or docker image) with the `.txt` file you just created as the first argument, like this:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
|
|
|
@ -67,9 +67,14 @@ impl<'a> Route<'a> {
|
||||||
match self {
|
match self {
|
||||||
Self::PrevOrNext(this_domain, offset) => {
|
Self::PrevOrNext(this_domain, offset) => {
|
||||||
|
|
||||||
|
// The name of the domain at the index of the index of shortest matching
|
||||||
|
// domain from the list for which the requested domain is a substring,
|
||||||
|
// offset by the offset.
|
||||||
let destination = domains.iter()
|
let destination = domains.iter()
|
||||||
.position(|d| d.as_str().starts_with(this_domain))
|
.enumerate()
|
||||||
.map(|i| (i as isize + offset).rem_euclid(domains.len() as isize))
|
.filter(|(_, d)| d.as_str().starts_with(this_domain))
|
||||||
|
.min_by_key(|(_, d)| d.len())
|
||||||
|
.map(|(i, _)| (i as isize + offset).rem_euclid(domains.len() as isize))
|
||||||
.map(|i| domains[i as usize]); // safe to unwrap: we just did a rem_euclid
|
.map(|i| domains[i as usize]); // safe to unwrap: we just did a rem_euclid
|
||||||
|
|
||||||
if let Some(url) = destination {
|
if let Some(url) = destination {
|
||||||
|
|
Loading…
Reference in a new issue