This forum is in read-only mode. The new forum is live at and registrations are open!

[Plugin] Updater for OB

  • Edit: We can technically say this is the first built-in Updater for OpenBullet ! 🙂

    It downloads the latest OB release from and unzips /w 7z.exe

    Unzip the archive into Plugins folder.

    alt text


    Latest compiled dll:

  • This is the code for who wants to compile byself

    using PluginFramework;
    using PluginFramework.Attributes;
    using RuriLib;
    using RuriLib.Interfaces;
    using System;
    using System.Diagnostics;
    using System.IO;
    using System.Net;
    namespace OBUpdaterPlugin
        public class Class1 : IPlugin
            public string Name => "OB Updater (Unofficial)";
            [Button("Check for updates")]
            public void CheckUpdate(IApplication app)
                WebClient webClient = new WebClient();
                string html = webClient.DownloadString("");
                string ltobVer = FindTextBetween(html, "css-truncate\" title=\"", "\">");
                string obVer = File.ReadAllText(@"version.txt");
                    app.Logger.Log($"Your OB version: Unknown | Latest OB version: {ltobVer}", LogLevel.Info, true);
                    app.Logger.Log($"Your OB version: {obVer} | Latest OB version: {ltobVer}", LogLevel.Info, true);
            public void CreateVerText()
                string path = @"version.txt";
                if (!File.Exists(path))
            public string FindTextBetween(string text, string left, string right)
                // TODO: Validate input arguments
                int beginIndex = text.IndexOf(left); // find occurence of left delimiter
                if (beginIndex == -1)
                    return string.Empty; // or throw exception?
                beginIndex += left.Length;
                int endIndex = text.IndexOf(right, beginIndex); // find occurence of right delimiter
                if (endIndex == -1)
                    return string.Empty; // or throw exception?
                return text.Substring(beginIndex, endIndex - beginIndex).Trim();
            [Button("Update your OpenBullet (requires restart)")]
            public void OBUpdater(IApplication app)
                WebClient webClient = new WebClient();
                webClient.DownloadFile("", @"");
                WebClient webClient2 = new WebClient();
                string html = webClient2.DownloadString("");
                string ltobVer = FindTextBetween(html, "css-truncate\" title=\"", "\">");
                File.WriteAllText("version.txt", ltobVer);
                string path = AppDomain.CurrentDomain.BaseDirectory;
                var process = Process.Start(@"Plugins\7z.exe", "x -aoa");
                Process.Start("CMD.exe", "/C ROBOCOPY " + "\"" + Environment.CurrentDirectory + "\\Release" + "\"" + " " + "\"" + Environment.CurrentDirectory + "\"" + " /E /IS /MOVE");

  • Quick fix:
    Now Release directory contents move to main openbullet directory.
    Latest compiled dll:

  • Glad to see someone contributing. Selam 🙂

  • i have run the plugin and it's working as expected, thanks @ShiyaVivala for your effort and awesome contribution.

  • @ShiyaVivala it keeps old DB and settings or just make a fresh OpenBullet ?

  • Admin

    Pretty sure settings and DB are kept but probably the Environment.ini gets overwritten

  • alr thanks OP for contribution

  • @Ruri I have a modified enviroment .ini & it wasn't overwritten, so OB updater pretty cool.

Log in to reply