### Configuration Presets Example Source: https://github.com/biglysoftware/biglybt/wiki/Command-Line-Options Example of a configuration preset line for setting the TCP Listen Port. Valid types include bool, long, float, string, byte[], list, and map. ```plaintext TCP.Listen.Port=long:1234 ``` -------------------------------- ### Example Public Profile Configuration Source: https://github.com/biglysoftware/biglybt/wiki/Friends This example shows how to configure your public profile with various properties like email, website, social media links, and custom entries. The 'country' property can display a flag, and '${ip}' will be replaced by your public IP address. ```plaintext email=test@example.com www=https://www.example.com/stuff icecast=http://${ip}:8000/MyMusic cat chat=chat:?My%20Cat%20Chat ``` -------------------------------- ### Install SWT Library on Raspberry Pi Source: https://github.com/biglysoftware/biglybt/wiki/Other-OS-Support Installs the necessary SWT graphical library for BiglyBT on Raspberry Pi. This is a workaround for known compatibility issues. ```bash sudo apt-get install libswt-gtk-4-java libswt-cairo-gtk-4-jni ``` -------------------------------- ### Running Multiple BiglyBT Instances via Batch File Source: https://github.com/biglysoftware/biglybt/wiki/Command-Line-Options Batch file script to start a separate instance of BiglyBT by copying the installation and setting specific Java VM options. ```cmd start /D "C:\BiglyBT 2" javaw.exe -cp "BiglyBT.jar;commons-cli.jar;swt.jar" -Djava.library.path="C:\BiglyBT 2" -Duser.dir="C:\BiglyBT 2" -Dazureus.config.path="C:\BiglyBT 2" -DMULTI_INSTANCE=true com.biglybt.ui.Main ``` -------------------------------- ### Alternative Multiple Instance Configuration Source: https://github.com/biglysoftware/biglybt/wiki/Command-Line-Options Example of a java.vmoptions file content to configure a second BiglyBT instance with separate settings and instance port. ```properties -include-options ${APPDATA}\BiglyBT2\java.vmoptions -Dazureus.instance.port=16889 -Dazureus.config.path=${APPDATA}\BiglyBT2 -Dazureus.window.title=BiglyBT2 ``` -------------------------------- ### Changing the Control Port Source: https://github.com/biglysoftware/biglybt/wiki/Command-Line-Options Example of setting the control port using the -Dazureus.instance.port system property. ```plaintext -Dazureus.instance.port= ``` -------------------------------- ### Assign Downloads Ready for Archive with Tag Constraints Source: https://github.com/biglysoftware/biglybt/wiki/Terminology Use tag constraints to automatically assign downloads ready for archiving based on criteria like share ratio. This example assigns downloads that are ready and have a share ratio of at least 0.5. ```java canArchive() && isGE( shareratio, 0.5 ); ``` -------------------------------- ### Add Java PPA and Install Oracle Java 8 JDK Source: https://github.com/biglysoftware/biglybt/wiki/Other-OS-Support Updates the package list and installs Oracle Java 8 JDK on Raspberry Pi by adding a trusted PPA. This is often required due to older default Java versions. ```bash sudo apt-get install dirmngr echo "deb http://ppa.launchpad.net/webupd8team/java/ubuntu trusty main" | sudo tee /etc/apt/sources.list.d/webupd8team-java.list echo "deb-src http://ppa.launchpad.net/webupd8team/java/ubuntu trusty main" | sudo tee -a /etc/apt/sources.list.d/webupd8team-java.list sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys EEA14886 sudo apt-get update sudo apt-get install oracle-java8-jdk ``` -------------------------------- ### Java Crash Log Example Source: https://github.com/biglysoftware/biglybt/wiki/Diagnostics An example snippet from a Java crash log, highlighting key information like JRE version, Java VM details, and the problematic frame that led to the crash. This helps in identifying the specific component or DLL causing the issue. ```text JRE version: OpenJDK Runtime Environment (8.0_382-b05) Java VM: OpenJDK 64-Bit Server VM (25.382-b05 mixed mode linux-amd64 compressed oops) Problematic frame: C Flash.ocx+0x54377 ``` -------------------------------- ### Run BiglyBT via Command Prompt on Windows Source: https://github.com/biglysoftware/biglybt/wiki/Command-Line-Options Use this Command Prompt command to start BiglyBT. The /D flag sets the working directory. ```cmd start /D "C:\Program Files\BiglyBT" javaw.exe -cp "BiglyBT.jar;commons-cli.jar;swt.jar" com.biglybt.ui.Main ``` -------------------------------- ### Run BiglyBT on macOS Source: https://github.com/biglysoftware/biglybt/wiki/Command-Line-Options This bash script starts BiglyBT on macOS, setting necessary environment variables and classpath. ```bash #! /bin/bash BIGLYBT=/Applications/BiglyBT/.biglybt java -XstartOnFirstThread -cp $BIGLYBT/BiglyBT.jar:$BIGLYBT/commons-cli.jar:$BIGLYBT/log4j.jar:$BIGLYBT/swt.jar -Duser.dir=$BIGLYBT com.biglybt.ui.Main ``` -------------------------------- ### Run BiglyBT via PowerShell on Windows Source: https://github.com/biglysoftware/biglybt/wiki/Command-Line-Options Use this PowerShell command to start BiglyBT. Ensure javaw.exe is in your system's PATH or provide its full path. ```PowerShell Start-Process -FilePath javaw.exe -WorkingDirectory 'C:\Program Files\BiglyBT' -ArgumentList '-cp "BiglyBT.jar;commons-cli.jar;swt.jar" com.biglybt.ui.Main' ``` -------------------------------- ### Configure BiglyBT Instance Port via Command Prompt Source: https://github.com/biglysoftware/biglybt/wiki/Command-Line-Options This Command Prompt command starts BiglyBT and sets the instance control port to 16889 using a command-line argument. ```cmd start /D "C:\Program Files\BiglyBT" javaw.exe -cp "BiglyBT.jar;commons-cli.jar;swt.jar" -Dazureus.instance.port=16889 com.biglybt.ui.Main ``` -------------------------------- ### Set Maximum JVM Memory Source: https://github.com/biglysoftware/biglybt/wiki/Command-Line-Options Example command to set the maximum JVM memory to 800MB when launching BiglyBT. ```bash javaw.exe -Xmx800m -cp "BiglyBT.jar;..." ``` -------------------------------- ### Add Magnet URI from Browser using curl Source: https://github.com/biglysoftware/biglybt/wiki/Plugins Example of how to add a magnet URI from a browser using the curl command-line tool on Windows. Requires your API key and BiglyBT's IP and port. ```Shell C:\\Windows\\System32\\curl.exe --get --data "apikey=&method=adddownload" --data-urlencode "magnet=%1" "http://:6906" ``` -------------------------------- ### Configure BiglyBT Instance Port via Bash Source: https://github.com/biglysoftware/biglybt/wiki/Command-Line-Options This bash script starts BiglyBT and sets the instance control port to 16889 using a command-line argument. ```bash #! /bin/bash BIGLYBT=/Applications/BiglyBT/.biglybt java -XstartOnFirstThread -cp $BIGLYBT/BiglyBT.jar:$BIGLYBT/commons-cli.jar:$BIGLYBT/log4j.jar:$BIGLYBT/swt.jar -Dazureus.instance.port=16889 -Duser.dir=$BIGLYBT com.biglybt.ui.Main ``` -------------------------------- ### Replace SWT JAR on Raspberry Pi Source: https://github.com/biglysoftware/biglybt/wiki/Other-OS-Support Copies the correct SWT JAR file to the BiglyBT installation directory, replacing the default one to resolve graphical issues. ```bash cp /usr/lib/java/swt-gtk-4.6.0.jar /swt.jar ``` -------------------------------- ### Initialize UI Elements and Load Settings Source: https://github.com/biglysoftware/biglybt/wiki/files/droo-simple-api-util.html This script initializes various input fields and checkboxes with values from browser local storage or default settings. It also sets up the background image and checks for API credentials to determine UI visibility. ```javascript document.getElementById("ipport").value = ipport document.getElementById("apikey").value = apikey document.getElementById("filterinp").value = last_filter document.getElementById("filtertags").value = last_filtertags document.getElementById("pickcol").value = last_sortcol document.getElementById("desc").checked = (localStorage.last_desc==="true") // converts string to boolean document.getElementById("hide_paths").checked = (localStorage.hide_paths==="true") document.getElementById("hide_tags").checked = (localStorage.hide_tags==="true") document.getElementById("prefix").value = prefix document.getElementById("re_find").value = re_find document.getElementById("re_flags").value = re_flags document.getElementById("re_replace").value = re_replace document.getElementById("suffix").value = suffix document.getElementById("checkallcb").checked = false document.getElementById("prot_ext").checked = localStorage.prot_ext !== undefined ? (localStorage.prot_ext==="true") : true document.getElementById("ren_dn").checked = (localStorage.ren_dn==="true") document.getElementById("ren_sp").checked = (localStorage.ren_sp==="true") document.getElementById("ren_to").checked = (localStorage.ren_to==="true") document.getElementById("set_com").checked = (localStorage.set_com==="true") document.getElementById("set_ipf").checked = (localStorage.set_ipf==="true") document.getElementById("set_ipf_text").value = localStorage.set_ipf_text || "true" document.getElementById("set_cat").checked = (localStorage.set_cat==="true") document.getElementById("set_cat_text").value = localStorage.set_cat_text || "" document.getElementById("add_tag").checked = (localStorage.add_tag==="true") document.getElementById("add_tag_text").value = localStorage.add_tag_text || "" document.getElementById("rem_tag").checked = (localStorage.rem_tag==="true") document.getElementById("rem_tag_text").value = localStorage.rem_tag_text || "" document.getElementById("set_net").checked = (localStorage.set_net==="true") document.getElementById("set_net_text").value = localStorage.set_net_text || "Public,I2P,Tor" document.getElementById("set_comp").checked = (localStorage.set_comp==="true") document.getElementById("set_comp_text").value = localStorage.set_comp_text || "" document.getElementById("body").style.background = `#333 url("https://source.unsplash.com/${picw}x${pich}/?wallpapers") no-repeat` document.getElementById("body").style.backgroundSize = "cover" if(ipport && apikey) { document.getElementById("fetch_status").textContent = "🤔 Getting data..." document.getElementById("fetch_status").style.color = "skyblue" getData() }else{ document.getElementById("searchreplace").style.display = "none" document.getElementById("filterbox").style.display = "none" document.getElementById("sec_table").style.display = "none" } ``` -------------------------------- ### Simple API: Set Peer Sources Source: https://github.com/biglysoftware/biglybt/wiki/Plugins Configures the peer sources for a download. Sources can be added or removed using '+' or '-'. Remember to URL-encode '+' as %2B and ',' as %2C. ```http method=setpeersources&hash=&peersources= ``` ```http ...&peersources=-DHT,-PeerExchange ``` -------------------------------- ### Initialize API Settings and Fetch Data Source: https://github.com/biglysoftware/biglybt/wiki/files/droo-simple-api-util_v1.1.1.html Initializes API connection parameters from local storage and fetches download data from the BiglyBT client. Handles potential errors during fetch and updates UI elements accordingly. ```javascript localStorage.clear() let ipport = localStorage.ipport || "127.0.0.1:6906" let apikey = localStorage.apikey || "" let prefix = localStorage.prefix || "" let re_find = localStorage.re_find || "" let re_flags = localStorage.re_flags || "ig" let re_replace = localStorage.re_replace || "" let suffix = localStorage.suffix || "" let alldata = [] let filtereddata = [] let t_rows = {} let search_old = " " let search_old_tags = " " let last_filter = localStorage.last_filter || "" let last_filtertags = localStorage.last_filtertags || "" let last_sortcol = localStorage.last_sortcol || "SavePath" let search_count = 0 let checked_count = 0 let slash = "\\" function getData() { fetch(`http://${ipport}/?apikey=${apikey}&method=listdownloads`) .then(response => response.json()) .then(data => { if(!data.length) { document.getElementById("fetch_status").textContent = "💩 No downloads" document.getElementById("fetch_status").style.color = "orangered" document.getElementById("searchreplace").style.display = "none" document.getElementById("filterbox").style.display = "none" return } alldata=data filtereddata=data if(data[0].SavePath.slice(0,1) === "/") {slash = "/"} }) .then( () => { document.getElementById("fetch_status").textContent = "" filterData() }) .catch( (error) => { document.getElementById("fetch_status").textContent = "😣 Didn't work. Recheck your settings. WHITELIST ONLY (disable password)." document.getElementById("fetch_status").style.color = "orangered" document.getElementById("searchreplace").style.display = "none" document.getElementById("filterbox").style.display = "none" document.getElementById("sec_table").style.display="none" document.getElementById("bottom").style.display="none" }) } ``` -------------------------------- ### Initialize API Settings Source: https://github.com/biglysoftware/biglybt/wiki/files/droo-simple-api-util.html Initializes variables from localStorage or sets defaults for BiglyBT API interaction. This includes IP address, port, API key, and search/replace patterns. ```javascript localStorage.clear() var ipport = localStorage.ipport || "127.0.0.1:6906" var apikey = localStorage.apikey || "" var prefix = localStorage.prefix || "" var re_find = localStorage.re_find || "" var re_flags = localStorage.re_flags || "ig" var re_replace = localStorage.re_replace || "" var suffix = localStorage.suffix || "" var alldata = [] var filtereddata = [] var t_rows = {} var search_old = " " var search_old_tags = " " var last_filter = localStorage.last_filter || "" var last_filtertags = localStorage.last_filtertags || "" var last_sortcol = localStorage.last_sortcol || "SavePath" var search_count = 0 var checked_count = 0 var slash = "\\" var pich = Math.min(screen.height,1080) var picw = Math.floor(pich * screen.width / screen.height) console.log(picw,pich) ``` -------------------------------- ### I2P Open Tracker List Configuration Source: https://github.com/biglysoftware/biglybt/wiki/Tracker-Templates-and-Lists An example of an open tracker list configuration for I2P, commonly found in i2psnark.config. This list can be integrated into BiglyBT. ```properties i2psnark.opentrackers=http://ri5a27ioqd4vkik72fawbcryglkmwyy4726uu5j3eg6zqh2jswfq.b32.i2p/announce,http://s5ikrdyjwbcgxmqetxb3nyheizftms7euacuub2hic7defkh3xhq.b32.i2p/a,http://uajd4nctepxpac4c4bdyrdw7qvja2a5u3x25otfhkptcjgd53ioq.b32.i2p/announce,http://w7tpbzncbcocrqtwwm3nezhnnsw4ozadvi2hmvzdhrqzfxfum7wa.b32.i2p/a ``` -------------------------------- ### Add Tracker List from Local File Source: https://github.com/biglysoftware/biglybt/wiki/Tracker-Templates-and-Lists Use a 'file:' URI to specify a local file containing a list of trackers. BiglyBT will insert the trackers from this file when the template is applied. ```text trackerlist:file:///C:/temp/tl.txt ``` -------------------------------- ### Simple API: List Downloads Source: https://github.com/biglysoftware/biglybt/wiki/Plugins Retrieves a list of all downloads. The result is returned as a JSON array. ```http method=listdownloads ``` -------------------------------- ### Configure BiglyBT Instance Port via PowerShell Source: https://github.com/biglysoftware/biglybt/wiki/Command-Line-Options This PowerShell command starts BiglyBT and sets the instance control port to 16889 using a command-line argument. ```PowerShell Start-Process -FilePath 'javaw.exe' -WorkingDirectory 'C:\Program Files\BiglyBT' -ArgumentList '-cp "BiglyBT.jar;commons-cli.jar;swt.jar" -Dazureus.instance.port=16889 com.biglybt.ui.Main' ``` -------------------------------- ### Build Configuration for JDK Path Source: https://github.com/biglysoftware/biglybt/blob/master/core/lib/libWIN32Access/README.md Configure the path to your Java Development Kit (JDK) for building the native components. ```xml ``` -------------------------------- ### Join Public Channel Source: https://github.com/biglysoftware/biglybt/wiki/Decentralized-Chat Use this command to create a new public channel or join an existing one. The behavior (public or anonymous channel creation) depends on the context where the command is used. ```text /join ``` -------------------------------- ### Simple API: Set Category Source: https://github.com/biglysoftware/biglybt/wiki/Plugins Sets the category for a specified download. Use an empty string for uncategorized. ```http method=setcategory&hash=&category= ``` -------------------------------- ### Text Emphasis in Chat Messages Source: https://github.com/biglysoftware/biglybt/wiki/Decentralized-Chat Provides examples of how to apply bold, italic, and normal text formatting within chat messages using HTML tags or Markdown-like syntax. ```plaintext bold - enclose words in ... or use **...** italic - enclose words in ... or use *...* normal - enclose words in ... to prevent emphasis from being applied within words ``` -------------------------------- ### Example JVM Memory Usage Log Line Source: https://github.com/biglysoftware/biglybt/wiki/Performance-Tweaks This log line shows the current memory allocation within the JVM. It indicates the maximum configured heap, total allocated memory, and free memory, helping to diagnose memory usage patterns. ```log [00:50:32] Thread state: elapsed=10000,cpu=3260,max=GMReceiver(2044/20%),mem:max=7431168,tot=346112,free=115296 ``` -------------------------------- ### Simple API: Add Tag Source: https://github.com/biglysoftware/biglybt/wiki/Plugins Adds a tag to a specified download. Requires the download hash and the tag name. ```http method=addtag&hash=&tag= ``` -------------------------------- ### Initialize API Utility Variables Source: https://github.com/biglysoftware/biglybt/wiki/files/droo-simple-api-util_v1.1.html Initializes variables for API interaction, including IP address, port, API key, and various filter/search parameters. It retrieves these values from local storage or uses default values. ```javascript let ipport = localStorage.ipport || "127.0.0.1:6906" let apikey = localStorage.apikey || "" let prefix = localStorage.prefix || "" let re_find = localStorage.re_find || "" let re_flags = localStorage.re_flags || "ig" let re_replace = localStorage.re_replace || "" let suffix = localStorage.suffix || "" let alldata = [] let filtereddata = [] let t_rows = {} let search_old = " " let search_old_tags = " " let last_filter = localStorage.last_filter || "" let last_filtertags = localStorage.last_filtertags || "" let last_sortcol = localStorage.last_sortcol || "SavePath" let search_count = 0 let checked_count = 0 let slash = "\\" ``` -------------------------------- ### Add Download via Torrent File, Magnet URI, or URL Source: https://github.com/biglysoftware/biglybt/wiki/Plugins Use this method to add a new download. The parameter can be 'file', 'magnet', or 'url'. The value must be URL-encoded. ```HTTP method=adddownload&[file|magnet|url]= ``` -------------------------------- ### Simple API: List Download Files Source: https://github.com/biglysoftware/biglybt/wiki/Plugins Retrieves a list of files for a specific download. Optionally compute V2 root file hashes for V1 torrents. ```http method=listfiles&hash=[&calc_root_hashes=<0|1>] ``` -------------------------------- ### Set IPv4 Stack as Preferred via System Property Source: https://github.com/biglysoftware/biglybt/wiki/Networking For Java versions beyond 17, set this system property on startup to prefer the IPv4 stack. This can resolve dual-stack issues with some VPNs. ```java -Djava.net.preferIPv4Stack=true ``` -------------------------------- ### Add Tracker List from URL Source: https://github.com/biglysoftware/biglybt/wiki/Tracker-Templates-and-Lists Prefix a tracker list URI with 'trackerlist:' to have BiglyBT automatically fetch and insert the trackers from the specified URL when the template is used. ```text trackerlist:http://a.b.c/list ``` -------------------------------- ### Persistent Configuration via java.vmoptions Source: https://github.com/biglysoftware/biglybt/wiki/Command-Line-Options Add these lines to the java.vmoptions file in %APPDATA%\BiglyBT to make command-line arguments persistent across sessions. ```plaintext -Dazureus.instance.port=16889 -DMULTI_INSTANCE=true ``` -------------------------------- ### Update Preview with Regex Source: https://github.com/biglysoftware/biglybt/wiki/files/droo-simple-api-util_v1.1.html Updates the displayed file names based on user-defined prefix, suffix, and regular expression find/replace patterns. It validates the regular expression and applies it to the 'after' column content. Stores preview settings in local storage. ```javascript function previewChange() { let column = document.getElementById("pickcol").value let prefix = document.getElementById("prefix").value let suffix = document.getElementById("suffix").value let re_find = document.getElementById("re_find").value let re_flags = document.getElementById("re_flags").value let re_replace = document.getElementById("re_replace").value let re_constr = {} try { re_constr = new RegExp(re_find, re_flags) } catch { document.getElementById("re_find").style.background = "#500000" document.getElementById("re_flags").style.background = "#500000" return } document.getElementById("re_find").style.background = "#00000083" document.getElementById("re_flags").style.background = "#00000083" let r=0 filtereddata.forEach(row => { let fn = row[column].slice(row[column].lastIndexOf(slash)+1) if(document.getElementById("prot_ext").checked && row.SavePathType == "File") { let ext = `${fn.slice(fn.lastIndexOf('.'))}` let before = fn.slice(0,fn.lastIndexOf('.')) }else{ let ext = "" let before = fn } let after = before.replace(re_constr, re_replace) t_rows[r].innerHTML = prefix+after+suffix+ext r++ }) localStorage.prefix = prefix localStorage.re_find = re_find localStorage.re_flags = re_flags localStorage.re_replace = re_replace localStorage.suffix = suffix localStorage.prot_ext = document.getElementById("prot_ext").checked } ```