Skip to content
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

BlueskyGephi V0.1.0 #306

Merged
merged 7 commits into from
Nov 14, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
39 changes: 39 additions & 0 deletions modules/BlueskyGephi/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
# Bluesky Gephi

This plugin allow you to visualize and explore the network of users in bluesky via the atprotocol.

# Quick start
- Get a bluesky account
- Generate a password https://bsky.app/settings/app-passwords
- Install the plugin in Gephi
- Open Gephi
- Put handle and password information
- Search for yourself
- Graph of your connection should appears.

# Docs

Keep in mind current atproto access point from bluesky is quite permissive and might change in the future.

## Fetch from user
You can fetch network from user from multiple way :
- Put one or multiple (separated by line return) handles or dids inside the plugin textarea and click on "Go!"
- You can right click on a node and select contextual menu item related to the plugin
- **Bluesky Fetch default data** , will fetch network based on the current configuration on the plugin panel
- **Fetch followers only data**, will fetch only the followers of the node
- **Fetch follows only data**, will fetch only the follows of the node

## Deep Search
By activating **Fetch also n+1**, the plugin will fetch the selected handles network **and also** the network of the handles found.

/!\ Keep in mind that this can be very long as some users has a long list of followers or follows. /!\

## Crawl Limit
To have the list of the followers and follows of a user, the atproto api is build in a way that the application need to loop over multiple
"pages". It means that for hub user, that have a high number of followers and follows (10k, 100k,1M) it might take an important amount of time
to retrive information for this kind of user.

Therefore, there is a possibility to limit this by only retriving a fraction of the followers and follows in order to speedup the exploration.

It's ok to do that if analysing theses hub isn't your main goal, as if theses hub are highly connected, they will automatically appears on the relationship
of other users.
103 changes: 103 additions & 0 deletions modules/BlueskyGephi/pom.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,103 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<artifactId>gephi-plugin-parent</artifactId>
<groupId>org.gephi</groupId>
<version>0.10.0</version>
</parent>

<groupId>fr.totetmatt</groupId>
<artifactId>bluesky-gephi</artifactId>
<version>0.1.0</version>
<packaging>nbm</packaging>

<name>Bluesky Gephi</name>

<dependencies>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.13.4.1</version>
</dependency>
<dependency>
<groupId>org.netbeans.api</groupId>
<artifactId>org-openide-awt</artifactId>
</dependency>
<dependency>
<groupId>${project.parent.groupId}</groupId>
<artifactId>visualization-api</artifactId>
</dependency>
<dependency>
<groupId>${project.parent.groupId}</groupId>
<artifactId>datalab-api</artifactId>
</dependency>
<dependency>
<groupId>org.netbeans.api</groupId>
<artifactId>org-openide-windows</artifactId>
</dependency>
<dependency>
<groupId>org.netbeans.api</groupId>
<artifactId>org-netbeans-modules-settings</artifactId>
</dependency>
<dependency>
<groupId>org.netbeans.api</groupId>
<artifactId>org-openide-util-lookup</artifactId>
</dependency>
<dependency>
<groupId>org.netbeans.api</groupId>
<artifactId>org-openide-util</artifactId>
</dependency>
<dependency>
<groupId>org.gephi</groupId>
<artifactId>graph-api</artifactId>
</dependency>
<dependency>
<groupId>org.gephi</groupId>
<artifactId>project-api</artifactId>
</dependency>
<dependency>
<groupId>org.gephi</groupId>
<artifactId>desktop-project</artifactId>

</dependency>
<dependency>
<groupId>org.gephi</groupId>
<artifactId>utils-longtask</artifactId>
</dependency>
</dependencies>

<build>
<plugins>
<plugin>
<groupId>org.apache.netbeans.utilities</groupId>
<artifactId>nbm-maven-plugin</artifactId>
<configuration>
<verifyRuntime>skip</verifyRuntime>
<licenseName>Apache 2.0</licenseName>
<author>totetmatt</author>
<authorEmail>[email protected]</authorEmail>
<authorUrl>https://totetmatt.fr</authorUrl>
<sourceCodeUrl>https://github.com/totetmatt/gephi-plugins.git</sourceCodeUrl>
<publicPackages>
<!-- Insert public packages -->
</publicPackages>
</configuration>
</plugin>
</plugins>
</build>

<!-- Snapshot Repositories (only needed if developing against a SNAPSHOT version) -->
<repositories>
<repository>
<id>oss-sonatype</id>
<name>oss-sonatype</name>
<url>https://oss.sonatype.org/content/repositories/snapshots/</url>
<snapshots>
<enabled>true</enabled>
</snapshots>
</repository>
</repositories>
</project>


Loading
Loading