-
-
Notifications
You must be signed in to change notification settings - Fork 18
feat: Add OrgSocialStrategy for Org Social network support #156
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Conversation
Implements a new strategy to post messages to Org Social, a decentralized social network based on Org Mode files over HTTP. Features: - Posts messages to Org Social via host API - Supports unlimited message length - Automatic RFC 3339 timestamp generation with unique IDs - Proper Org Mode post formatting - Removes empty template markers from host responses - Appends posts at the end of social.org file - First post has no blank line, subsequent posts have one blank line separator - Downloads from public URL, uploads via authenticated vfile Configuration: - vfile: Virtual file URL with authentication token - publicUrl: Public URL of the social.org file - host: Optional Org Social Host instance (defaults to host.org-social.org) Tests: - 22 comprehensive unit tests covering all functionality - Verified with real API integration tests - All 346 tests passing 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
|
Thanks for the contribution. Please provide some documentation around Org Social and its API so I can review. |
|
Endpoint: Request: curl -X POST https://host.org-social.org/signup \
-H "Content-Type: application/json" \
-d '{"nick": "your-nickname"}'Response (Success): {
"type": "Success",
"errors": [],
"data": {
"vfile": "http://host.org-social.org/vfile?token=YOUR_TOKEN&ts=TIMESTAMP&sig=SIGNATURE",
"public-url": "http://host.org-social.org/your-nickname/social.org"
}
}Response (Error): {
"type": "Error",
"errors": ["Nickname already exists"]
}
Endpoint: POST /upload Request: curl -X POST https://host.org-social.org/upload \
-F "vfile=http://host.org-social.org/vfile?token=..." \
-F "file=@social.org"Response (Success): {
"type": "Success",
"errors": [],
"data": {
"message": "File uploaded successfully",
"public-url": "http://host.org-social.org/your-nickname/social.org"
}
}
Endpoint: POST /delete Request: curl -X POST https://host.org-social.org/delete \
-F "vfile=http://host.org-social.org/vfile?token=..."
Endpoint: GET /public-routes Lists all active hosted files for community discovery. How This Implementation Works The OrgSocialStrategy class implements the following workflow:
Authentication: The vfile URL contains a token, timestamp, and signature that authenticate the user. This is kept private and never shared. Public Access: The publicUrl is the public, shareable URL where anyone can read the user's posts. Testing All tests are passing with 100% coverage:
References
Let me know if you need any clarification or would like me to add more documentation! |
|
Thanks for the info. Just so I'm understanding what I'm looking at, Org Social is your personal project? |
|
Yes! I'm the founder and I maintain some of the tools. The community and its use are growing steadily. |
|
As best I can tell, this is at most four months old? |
|
4 months |
|
@nzakas Maintenance won't be a problem; I'll personally take care of keeping it running and fixing any bugs. |
|
Can you share some usage statistics? I need to feel like this is more than just a hobby. |
|
@nzakas Of course! -> https://activity.andros.dev/@andros/statuses/01K9Y3KT2TH5DSVANEDYR25VQ3 I need to calculate last month's activity, but the network is very active and has several small projects underway. A language filter was recently added at the request of several users. |
Implements a new strategy to post messages to Org Social, a decentralized social network based on Org Mode files over HTTP.
Configuration:
All tests passing