diff options
author | CoprDistGit <infra@openeuler.org> | 2023-05-15 04:01:39 +0000 |
---|---|---|
committer | CoprDistGit <infra@openeuler.org> | 2023-05-15 04:01:39 +0000 |
commit | a5742b6be29379d28f12f7589fcc8e7d38e94967 (patch) | |
tree | 6054a0586e41fcd94192dbd83a0ebe74131b881c | |
parent | bf341e669b39b2ff9546be28cf4a5dfb63e3a5c9 (diff) |
automatic import of python-django-friendship
-rw-r--r-- | .gitignore | 1 | ||||
-rw-r--r-- | python-django-friendship.spec | 603 | ||||
-rw-r--r-- | sources | 1 |
3 files changed, 605 insertions, 0 deletions
@@ -0,0 +1 @@ +/django_friendship-1.9.6.tar.gz diff --git a/python-django-friendship.spec b/python-django-friendship.spec new file mode 100644 index 0000000..140f354 --- /dev/null +++ b/python-django-friendship.spec @@ -0,0 +1,603 @@ +%global _empty_manifest_terminate_build 0 +Name: python-django-friendship +Version: 1.9.6 +Release: 1 +Summary: django-friendship provides an easy extensible interface for following and friendship +License: BSD-3-Clause +URL: https://github.com/revsys/django-friendship/ +Source0: https://mirrors.nju.edu.cn/pypi/web/packages/2d/af/2b58320c47e1cc99d45b73915c818206cb669e55a8bc4de3d1ff73a74a3d/django_friendship-1.9.6.tar.gz +BuildArch: noarch + +Requires: python3-black +Requires: python3-pytest +Requires: python3-pytest-django +Requires: python3-pytest-cov +Requires: python3-pytest-pythonpath +Requires: python3-factory-boy + +%description +# django-friendship + +[](https://github.com/revsys/django-friendship/actions/workflows/actions.yml) + +This application enables you to create and manage follows, blocks and bi-directional friendships between users. It features: + +- Friendship request objects that can be accepted, rejected, canceled, or marked as viewed. +- Hooks to easily list all friend requests sent or received by a given user, filtered by the status of the request. +- A blocklist for each user of users they've blocked. +- Tags to include information about friendships, blocks and follows in your templates. +- Integration with `AUTH_USER_MODEL`. +- Validation to prevent common mistakes. +- Faster server response time through caching + +## Requirements + +** Django 3.2 since v1.9.1 ** + +Previously: **Django 1.11+** since v1.7.0 (latest release supporting **Django 1.10** is v1.6.0) + +## Installation + +1. `pip install django-friendship` +2. add `"friendship"` to `INSTALLED_APPS` and run `python manage.py migrate`. +3. Use the friendship manager in your own views, or wire up the URLconf to include the builtin views: + +```python +urlpatterns = [ + ... + path('friendship/', include('friendship.urls')) + ... +] +``` + +Note: If you are migrating from django-friendship `v1.6.x`, you'll need to rollback your migrations and fake +migration `0002` + +```shell +$ ./manage.py migrate friendship 0001 +$ ./manage.py migrate friendship 0002 --fake +``` + +If you're migrating from `v1.7.x`, you'll likely have to fake `0003` as well: + +```shell +$ ./manage.py migrate friendship 0003 --fake +``` + +## Usage + +`django-friendship` provides a free API that gives you several ways to create and manage friendship requests or follows in your views. Add the following at the top of your `views.py`: + +```python +from django.contrib.auth.models import User +from friendship.models import Friend, Follow, Block +``` + +### Getting Data about Friendships + +- List all of a user's friends: `Friend.objects.friends(request.user)` +- List all unread friendship requests: `Friend.objects.unread_requests(user=request.user)` +- List all unrejected friendship requests: `Friend.objects.unrejected_requests(user=request.user)` +- Count of all unrejected friendship requests: `Friend.objects.unrejected_request_count(user=request.user)` +- List all rejected friendship requests: `Friend.objects.rejected_requests(user=request.user)` +- Count of all rejected friendship requests: `Friend.objects.rejected_request_count(user=request.user)` +- List of all sent friendship requests: `Friend.objects.sent_requests(user=request.user)` +- Test if two users are friends: `Friend.objects.are_friends(request.user, other_user) == True` + +### Getting Data about Follows + +- List of a user's followers: `Follow.objects.followers(request.user)` +- List of who a user is following: `Follow.objects.following(request.user)` + +### Getting Data about Blocks + +- List of a user's blockers: `Block.objects.blocked(request.user)` +- List of who a user is blocking: `Block.objects.blocking(request.user)` +- Test if a user is blocked: `Block.objects.is_blocked(request.user, other_user) == True` + +### Managing Friendships and Follows + +#### Create a friendship request: + +```python +other_user = User.objects.get(pk=1) +Friend.objects.add_friend( + request.user, # The sender + other_user, # The recipient + message='Hi! I would like to add you') # This message is optional +``` + +#### Let the user who received the request respond: + +```python +from friendship.models import FriendshipRequest + +friend_request = FriendshipRequest.objects.get(from_user=request.user, to_user=other_user) +friend_request.accept() +# or friend_request.reject() +``` + +#### To remove the friendship relationship between `request.user` and `other_user`, do the following: + +```python +Friend.objects.remove_friend(request.user, other_user) +``` + +#### Make request.user a follower of other_user: + +```python +Follow.objects.add_follower(request.user, other_user) +``` + + +#### Make request.user block other_user: + +```python +Block.objects.add_block(request.user, other_user) +``` + +#### Make request.user unblock other_user: + +```python +Block.objects.remove_block(request.user, other_user) +``` + +### Templates + +You can use `django-friendship` tags in your templates. First enter: + +```django +{% load friendshiptags %} +``` + +Then use any of the following: + +```django +{% friends request.user %} +{% followers request.user %} +{% following request.user %} +{% friend_requests request.user %} +{% blockers request.user %} +{% blocking request.user %} +``` + +### Signals + +`django-friendship` emits the following signals: + +- friendship_request_created +- friendship_request_rejected +- friendship_request_canceled +- friendship_request_accepted +- friendship_removed +- follower_created +- following_created +- follower_removed +- following_removed +- block_created +- block_removed + + +### Contributing + +Development [takes place on GitHub](https://github.com/revsys/django-friendship). Bug reports, patches, and fixes are always welcome! + +# Need help? + +[REVSYS](http://www.revsys.com?utm_medium=github&utm_source=django-test-plus) can help with your Python, Django, and infrastructure projects. If you have a question about this project, please open a GitHub issue. If you love us and want to keep track of our goings-on, here's where you can find us online: + +<a href="https://revsys.com?utm_medium=github&utm_source=django-friendship"><img src="https://pbs.twimg.com/profile_images/915928618840285185/sUdRGIn1_400x400.jpg" height="50" /></a> +<a href="https://twitter.com/revsys"><img src="https://cdn1.iconfinder.com/data/icons/new_twitter_icon/256/bird_twitter_new_simple.png" height="43" /></a> +<a href="https://www.facebook.com/revsysllc/"><img src="https://cdn3.iconfinder.com/data/icons/picons-social/57/06-facebook-512.png" height="50" /></a> + + + + +%package -n python3-django-friendship +Summary: django-friendship provides an easy extensible interface for following and friendship +Provides: python-django-friendship +BuildRequires: python3-devel +BuildRequires: python3-setuptools +BuildRequires: python3-pip +%description -n python3-django-friendship +# django-friendship + +[](https://github.com/revsys/django-friendship/actions/workflows/actions.yml) + +This application enables you to create and manage follows, blocks and bi-directional friendships between users. It features: + +- Friendship request objects that can be accepted, rejected, canceled, or marked as viewed. +- Hooks to easily list all friend requests sent or received by a given user, filtered by the status of the request. +- A blocklist for each user of users they've blocked. +- Tags to include information about friendships, blocks and follows in your templates. +- Integration with `AUTH_USER_MODEL`. +- Validation to prevent common mistakes. +- Faster server response time through caching + +## Requirements + +** Django 3.2 since v1.9.1 ** + +Previously: **Django 1.11+** since v1.7.0 (latest release supporting **Django 1.10** is v1.6.0) + +## Installation + +1. `pip install django-friendship` +2. add `"friendship"` to `INSTALLED_APPS` and run `python manage.py migrate`. +3. Use the friendship manager in your own views, or wire up the URLconf to include the builtin views: + +```python +urlpatterns = [ + ... + path('friendship/', include('friendship.urls')) + ... +] +``` + +Note: If you are migrating from django-friendship `v1.6.x`, you'll need to rollback your migrations and fake +migration `0002` + +```shell +$ ./manage.py migrate friendship 0001 +$ ./manage.py migrate friendship 0002 --fake +``` + +If you're migrating from `v1.7.x`, you'll likely have to fake `0003` as well: + +```shell +$ ./manage.py migrate friendship 0003 --fake +``` + +## Usage + +`django-friendship` provides a free API that gives you several ways to create and manage friendship requests or follows in your views. Add the following at the top of your `views.py`: + +```python +from django.contrib.auth.models import User +from friendship.models import Friend, Follow, Block +``` + +### Getting Data about Friendships + +- List all of a user's friends: `Friend.objects.friends(request.user)` +- List all unread friendship requests: `Friend.objects.unread_requests(user=request.user)` +- List all unrejected friendship requests: `Friend.objects.unrejected_requests(user=request.user)` +- Count of all unrejected friendship requests: `Friend.objects.unrejected_request_count(user=request.user)` +- List all rejected friendship requests: `Friend.objects.rejected_requests(user=request.user)` +- Count of all rejected friendship requests: `Friend.objects.rejected_request_count(user=request.user)` +- List of all sent friendship requests: `Friend.objects.sent_requests(user=request.user)` +- Test if two users are friends: `Friend.objects.are_friends(request.user, other_user) == True` + +### Getting Data about Follows + +- List of a user's followers: `Follow.objects.followers(request.user)` +- List of who a user is following: `Follow.objects.following(request.user)` + +### Getting Data about Blocks + +- List of a user's blockers: `Block.objects.blocked(request.user)` +- List of who a user is blocking: `Block.objects.blocking(request.user)` +- Test if a user is blocked: `Block.objects.is_blocked(request.user, other_user) == True` + +### Managing Friendships and Follows + +#### Create a friendship request: + +```python +other_user = User.objects.get(pk=1) +Friend.objects.add_friend( + request.user, # The sender + other_user, # The recipient + message='Hi! I would like to add you') # This message is optional +``` + +#### Let the user who received the request respond: + +```python +from friendship.models import FriendshipRequest + +friend_request = FriendshipRequest.objects.get(from_user=request.user, to_user=other_user) +friend_request.accept() +# or friend_request.reject() +``` + +#### To remove the friendship relationship between `request.user` and `other_user`, do the following: + +```python +Friend.objects.remove_friend(request.user, other_user) +``` + +#### Make request.user a follower of other_user: + +```python +Follow.objects.add_follower(request.user, other_user) +``` + + +#### Make request.user block other_user: + +```python +Block.objects.add_block(request.user, other_user) +``` + +#### Make request.user unblock other_user: + +```python +Block.objects.remove_block(request.user, other_user) +``` + +### Templates + +You can use `django-friendship` tags in your templates. First enter: + +```django +{% load friendshiptags %} +``` + +Then use any of the following: + +```django +{% friends request.user %} +{% followers request.user %} +{% following request.user %} +{% friend_requests request.user %} +{% blockers request.user %} +{% blocking request.user %} +``` + +### Signals + +`django-friendship` emits the following signals: + +- friendship_request_created +- friendship_request_rejected +- friendship_request_canceled +- friendship_request_accepted +- friendship_removed +- follower_created +- following_created +- follower_removed +- following_removed +- block_created +- block_removed + + +### Contributing + +Development [takes place on GitHub](https://github.com/revsys/django-friendship). Bug reports, patches, and fixes are always welcome! + +# Need help? + +[REVSYS](http://www.revsys.com?utm_medium=github&utm_source=django-test-plus) can help with your Python, Django, and infrastructure projects. If you have a question about this project, please open a GitHub issue. If you love us and want to keep track of our goings-on, here's where you can find us online: + +<a href="https://revsys.com?utm_medium=github&utm_source=django-friendship"><img src="https://pbs.twimg.com/profile_images/915928618840285185/sUdRGIn1_400x400.jpg" height="50" /></a> +<a href="https://twitter.com/revsys"><img src="https://cdn1.iconfinder.com/data/icons/new_twitter_icon/256/bird_twitter_new_simple.png" height="43" /></a> +<a href="https://www.facebook.com/revsysllc/"><img src="https://cdn3.iconfinder.com/data/icons/picons-social/57/06-facebook-512.png" height="50" /></a> + + + + +%package help +Summary: Development documents and examples for django-friendship +Provides: python3-django-friendship-doc +%description help +# django-friendship + +[](https://github.com/revsys/django-friendship/actions/workflows/actions.yml) + +This application enables you to create and manage follows, blocks and bi-directional friendships between users. It features: + +- Friendship request objects that can be accepted, rejected, canceled, or marked as viewed. +- Hooks to easily list all friend requests sent or received by a given user, filtered by the status of the request. +- A blocklist for each user of users they've blocked. +- Tags to include information about friendships, blocks and follows in your templates. +- Integration with `AUTH_USER_MODEL`. +- Validation to prevent common mistakes. +- Faster server response time through caching + +## Requirements + +** Django 3.2 since v1.9.1 ** + +Previously: **Django 1.11+** since v1.7.0 (latest release supporting **Django 1.10** is v1.6.0) + +## Installation + +1. `pip install django-friendship` +2. add `"friendship"` to `INSTALLED_APPS` and run `python manage.py migrate`. +3. Use the friendship manager in your own views, or wire up the URLconf to include the builtin views: + +```python +urlpatterns = [ + ... + path('friendship/', include('friendship.urls')) + ... +] +``` + +Note: If you are migrating from django-friendship `v1.6.x`, you'll need to rollback your migrations and fake +migration `0002` + +```shell +$ ./manage.py migrate friendship 0001 +$ ./manage.py migrate friendship 0002 --fake +``` + +If you're migrating from `v1.7.x`, you'll likely have to fake `0003` as well: + +```shell +$ ./manage.py migrate friendship 0003 --fake +``` + +## Usage + +`django-friendship` provides a free API that gives you several ways to create and manage friendship requests or follows in your views. Add the following at the top of your `views.py`: + +```python +from django.contrib.auth.models import User +from friendship.models import Friend, Follow, Block +``` + +### Getting Data about Friendships + +- List all of a user's friends: `Friend.objects.friends(request.user)` +- List all unread friendship requests: `Friend.objects.unread_requests(user=request.user)` +- List all unrejected friendship requests: `Friend.objects.unrejected_requests(user=request.user)` +- Count of all unrejected friendship requests: `Friend.objects.unrejected_request_count(user=request.user)` +- List all rejected friendship requests: `Friend.objects.rejected_requests(user=request.user)` +- Count of all rejected friendship requests: `Friend.objects.rejected_request_count(user=request.user)` +- List of all sent friendship requests: `Friend.objects.sent_requests(user=request.user)` +- Test if two users are friends: `Friend.objects.are_friends(request.user, other_user) == True` + +### Getting Data about Follows + +- List of a user's followers: `Follow.objects.followers(request.user)` +- List of who a user is following: `Follow.objects.following(request.user)` + +### Getting Data about Blocks + +- List of a user's blockers: `Block.objects.blocked(request.user)` +- List of who a user is blocking: `Block.objects.blocking(request.user)` +- Test if a user is blocked: `Block.objects.is_blocked(request.user, other_user) == True` + +### Managing Friendships and Follows + +#### Create a friendship request: + +```python +other_user = User.objects.get(pk=1) +Friend.objects.add_friend( + request.user, # The sender + other_user, # The recipient + message='Hi! I would like to add you') # This message is optional +``` + +#### Let the user who received the request respond: + +```python +from friendship.models import FriendshipRequest + +friend_request = FriendshipRequest.objects.get(from_user=request.user, to_user=other_user) +friend_request.accept() +# or friend_request.reject() +``` + +#### To remove the friendship relationship between `request.user` and `other_user`, do the following: + +```python +Friend.objects.remove_friend(request.user, other_user) +``` + +#### Make request.user a follower of other_user: + +```python +Follow.objects.add_follower(request.user, other_user) +``` + + +#### Make request.user block other_user: + +```python +Block.objects.add_block(request.user, other_user) +``` + +#### Make request.user unblock other_user: + +```python +Block.objects.remove_block(request.user, other_user) +``` + +### Templates + +You can use `django-friendship` tags in your templates. First enter: + +```django +{% load friendshiptags %} +``` + +Then use any of the following: + +```django +{% friends request.user %} +{% followers request.user %} +{% following request.user %} +{% friend_requests request.user %} +{% blockers request.user %} +{% blocking request.user %} +``` + +### Signals + +`django-friendship` emits the following signals: + +- friendship_request_created +- friendship_request_rejected +- friendship_request_canceled +- friendship_request_accepted +- friendship_removed +- follower_created +- following_created +- follower_removed +- following_removed +- block_created +- block_removed + + +### Contributing + +Development [takes place on GitHub](https://github.com/revsys/django-friendship). Bug reports, patches, and fixes are always welcome! + +# Need help? + +[REVSYS](http://www.revsys.com?utm_medium=github&utm_source=django-test-plus) can help with your Python, Django, and infrastructure projects. If you have a question about this project, please open a GitHub issue. If you love us and want to keep track of our goings-on, here's where you can find us online: + +<a href="https://revsys.com?utm_medium=github&utm_source=django-friendship"><img src="https://pbs.twimg.com/profile_images/915928618840285185/sUdRGIn1_400x400.jpg" height="50" /></a> +<a href="https://twitter.com/revsys"><img src="https://cdn1.iconfinder.com/data/icons/new_twitter_icon/256/bird_twitter_new_simple.png" height="43" /></a> +<a href="https://www.facebook.com/revsysllc/"><img src="https://cdn3.iconfinder.com/data/icons/picons-social/57/06-facebook-512.png" height="50" /></a> + + + + +%prep +%autosetup -n django-friendship-1.9.6 + +%build +%py3_build + +%install +%py3_install +install -d -m755 %{buildroot}/%{_pkgdocdir} +if [ -d doc ]; then cp -arf doc %{buildroot}/%{_pkgdocdir}; fi +if [ -d docs ]; then cp -arf docs %{buildroot}/%{_pkgdocdir}; fi +if [ -d example ]; then cp -arf example %{buildroot}/%{_pkgdocdir}; fi +if [ -d examples ]; then cp -arf examples %{buildroot}/%{_pkgdocdir}; fi +pushd %{buildroot} +if [ -d usr/lib ]; then + find usr/lib -type f -printf "/%h/%f\n" >> filelist.lst +fi +if [ -d usr/lib64 ]; then + find usr/lib64 -type f -printf "/%h/%f\n" >> filelist.lst +fi +if [ -d usr/bin ]; then + find usr/bin -type f -printf "/%h/%f\n" >> filelist.lst +fi +if [ -d usr/sbin ]; then + find usr/sbin -type f -printf "/%h/%f\n" >> filelist.lst +fi +touch doclist.lst +if [ -d usr/share/man ]; then + find usr/share/man -type f -printf "/%h/%f.gz\n" >> doclist.lst +fi +popd +mv %{buildroot}/filelist.lst . +mv %{buildroot}/doclist.lst . + +%files -n python3-django-friendship -f filelist.lst +%dir %{python3_sitelib}/* + +%files help -f doclist.lst +%{_docdir}/* + +%changelog +* Mon May 15 2023 Python_Bot <Python_Bot@openeuler.org> - 1.9.6-1 +- Package Spec generated @@ -0,0 +1 @@ +9e6f6e383c9e40a046e0b5ef0386e14d django_friendship-1.9.6.tar.gz |