Skip to content

Commit

Permalink
Merge pull request #306 from totetmatt/blueskyGephi
Browse files Browse the repository at this point in the history
BlueskyGephi V0.1.0
  • Loading branch information
eduramiba authored Nov 14, 2023
2 parents 55fa3f9 + 3206ecb commit c9e82e7
Show file tree
Hide file tree
Showing 23 changed files with 1,960 additions and 0 deletions.
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

0 comments on commit c9e82e7

Please sign in to comment.