Adding some information about how submits work.
This commit is contained in:
parent
b803aa30a0
commit
65a6c71496
1 changed files with 63 additions and 1 deletions
64
README.md
64
README.md
|
@ -5,4 +5,66 @@ Example cronjob.
|
|||
```
|
||||
*/30 * * * * www-data cd /var/www/friendica-directory; php include/cron_maintain.php
|
||||
*/5 * * * * www-data cd /var/www/friendica-directory; php include/cron_sync.php
|
||||
```
|
||||
```
|
||||
|
||||
## How submissions are processed
|
||||
|
||||
1. The /submit endpoint takes a `?url=` parameter.
|
||||
This parameter is an encoded URL, the original ASCII is treated as binary and base16 encoded.
|
||||
This URL should be a profile location, such as `https://fc.oscp.info/profile/admin`.
|
||||
This URL will be checked in the database for existing accounts.
|
||||
This check includes a normalization, http vs https is ignored as well as www. prefixes.
|
||||
|
||||
2. If noscrape is supported by the site, this will be used instead of a scrape request.
|
||||
In this case `https://fc.oscp.info/noscrape/admin`.
|
||||
If noscrape fails or is not supported, the url provided (as is) will be scraped for meta information.
|
||||
* `<meta name="dfrn-global-visibility" content="true" />`
|
||||
* `<meta name="friendica.community" content="true" />`
|
||||
or `<meta name="friendika.community" content="true" />`
|
||||
* `<meta name="keywords" content="these,are,your,public,tags" />`
|
||||
* `<link rel="dfrn-*" href="https://fc.oscp.info/*" />`
|
||||
any dfrn-* prefixed link and it's href attribute.
|
||||
* `.vcard .fn` as `fn`
|
||||
* `.vcard .title` as `pdesc`
|
||||
* `.vcard .photo` as `photo`
|
||||
* `.vcard .key` as `key`
|
||||
* `.vcard .locality` as `locality`
|
||||
* `.vcard .region` as `region`
|
||||
* `.vcard .postal-code` as `postal-code`
|
||||
* `.vcard .country-name` as `country-name`
|
||||
* `.vcard .x-gender` as `gender`
|
||||
* `.marital-text` as `marital`
|
||||
|
||||
3. If the `dfrn-global-visibility` value is set to false. Any existing records will be deleted.
|
||||
And the process exits here.
|
||||
|
||||
4. A submission is IGNORED when at least the following data could not be scraped.
|
||||
* `key` the public key from the hCard.
|
||||
* `dfrn-request` required for the DFRN protocol.
|
||||
* `dfrn-confirm` required for the DFRN protocol.
|
||||
* `dfrn-notify` required for the DFRN protocol.
|
||||
* `dfrn-poll` required for the DFRN protocol.
|
||||
|
||||
5. If the profile existed in the database and the profile is not explicitly set to
|
||||
public using the `dfrn-global-visibility` meta tag. It will be deleted.
|
||||
|
||||
6. If the profile existed in the database and the profile lacks either an `fn` or `photo`
|
||||
attribute, it will be deleted.
|
||||
|
||||
7. The profile is now inserted/updated based on the found information.
|
||||
Notable database fields are:
|
||||
* `homepage` the originally (decoded) `?url=` parameter.
|
||||
* `nurl` the normalized URL created to remove http vs https and www vs non-www urls.
|
||||
* `created` the creation date and time in UTC (now if the entry did not exist yet).
|
||||
* `updated` the current date and time in UTC.
|
||||
|
||||
8. If an insert has occurred, the URL will now be used to check for duplicates.
|
||||
The highest insert ID will be kept, anything else deleted.
|
||||
|
||||
9. If provided, your public tags are now split by ` ` (space character) and stored in the tags table.
|
||||
This uses your normalized URL as unique key for your profile.
|
||||
|
||||
10. The `photo` provided will be downloaded and resized to 80x80, regardless of source size.
|
||||
|
||||
11. Should there somehow have been an error at this point such as that there is no profile ID known.
|
||||
Everything will get deleted based on the original `?url=` parameter.
|
Loading…
Add table
Reference in a new issue