Awesome
Lemmy
This is a PowerShell module for interacting with the federated social media platform Lemmy.
Installation
This module is still in alpha test, so only the preivew version has been published to the PowerShell Gallery.
Install-Module Lemmy-preview
Import-Module Lemmy-preview
You can also download and use it directly from the repository.
git clone https://github.com/mdowst/Lemmy-PowerShell.git
Import-Module .\Lemmy-PowerShell\src\Lemmy.psd1
Connecting to an Instance
Run Connect-LemmyInstance
to connect and authenticate with an instance of Lemmy.
Username is either your username on the instance or you email address.
$credential = Get-Credential
Connect-LemmyInstance -Uri 'https://programming.dev/' -Credential $credential
Search Tools
There are several function to search for posts, comments, communities, and users in Lemmy.
Find Posts
Use the function Get-LemmyPost
to search for and return Lemmy posts.
Example: Get all posts in a community
Returns a the posts in the community 'MyCommunity'
Get-LemmyPost -CommunityName 'MyCommunity'
Example: Search all posts in a community for a string
Searches for a post with the title 'Hello Lemmy' in the community 'MyCommunity'
Get-LemmyPost -CommunityName 'MyCommunity' -SearchString 'Hello Lemmy'
Example: Sort the results
Returns a the posts in the community 'MyCommunity' sorted by new.
Get-LemmyPost -CommunityName 'MyCommunity' -Sort 'New'
Valid sort objects include 'Active', 'Hot', 'MostComments', 'New', 'NewComments', 'Old', 'TopAll', 'TopDay', 'TopMonth', 'TopWeek', 'TopYear'
Find Comments
It is recommended that you filter it down to the post itself first, then search the comments.
Example: Get all comments in post
Searches for a post with the title 'Hello Lemmy' in the community 'MyCommunity' then gets the comments for the post
$post = Get-LemmyPost -CommunityName 'MyCommunity' -SearchString 'Hello Lemmy'
Get-LemmyComment -PostId $post.post.id
Example: Get all top-level comments in post
Get the top-level comments
$post = Get-LemmyPost -CommunityName 'MyCommunity' -SearchString 'Hello Lemmy'
Get-LemmyComment -PostId $post.post.id -MaxDepth 1
Exmaple: Search comments with specific text
Use the SearchString parameter to search the text inside a comment
$post = Get-LemmyPost -CommunityName 'MyCommunity' -SearchString 'Hello Lemmy'
Get-LemmyComment -PostId $post.post.id -SearchString 'bad comment'
Find Users
The function Get-LemmyPerson
can be used to find a specific user account in Lemmy.
Get-LemmyPerson -UserName 'pwshtester'
Moderator Tools
This module contains functions to allow you to moderate your Lemmy communities.
Remove a post
You can use Remove-LemmyPost
to remove a post from a community. You must have the ID of the post.
You can find the ID using Get-LemmyPost
or by looking in the post URL. For example, the ID for post with the URL https://programming.dev/post/34958 is 34958.
Examples
Searches for a post with the title 'Hello Lemmy' in the community 'MyCommunity' then removed the post
$post = Get-LemmyPost -CommunityName 'MyCommunity' -SearchString 'Hello Lemmy'
Remove-LemmyPost -PostId $post.post.id -Reason 'breaking rule 1'
Remove a comment
You can use Remove-LemmyComment
to remove a comment from a post in your community. You must have the ID of the comment to remove.
You can find a comment by searching based on the content of the comment. It is recommended that you filter it down to the post itself first, then search the comments.
Examples
Searches for a post with the title 'Hello Lemmy' in the community 'MyCommunity', then gets the comment with the text 'A naughty comment', then removes the comment.
$post = Get-LemmyPost -CommunityName 'MyCommunity' -SearchString 'Hello Lemmy'
$comment = Get-LemmyComment -PostId $post.post.id -SearchString 'A naughty comment'
Remove-LemmyComment -CommentId $comment.comment.id
The link button you see on the Lemmy site will only give you the ID of the top level comment. But you can use that to narrow your search to the child comments and find the one you want to remove.
$comment = Get-LemmyComment -PostId 1234 -ParentID 5 -SearchString 'A naughty comment'
Remove-LemmyComment -CommentId $comment.comment.id
Lock and Unlock a post
You can use Lock-LemmyPost
and Unlock-LemmyPost
functions to lock and unlock post. You must have the ID of the post.
Examples
Lock a post
Lock-LemmyPost -PostId 1234
Unlock a post
Unlock-LemmyPost -PostId 1234