Chrome Extension - Browser Events

Questions and comments specific to a particular plugin should go here.
Medy
Experienced User
Posts: 97
Joined: Sat Nov 15, 2014 8:33 pm
Location: Germany

Chrome Extension - Browser Events

Post by Medy » Sun Nov 17, 2019 11:55 pm

Edit : pls refer to this version now ... as it has the same fumctionality + more :
viewtopic.php?f=9&t=10406

This Chrome Extension will forward the URL / web address of your active browser tab to eventghost

Events are generated by:

- Switch tab
- Reload Tab
- Change Url on active Tab

(CHROME Browser)

REQUIRED
1. Add the Webserver Pluging to eventghost ... leave it on default + Port 80 ..
2. Mount the Chrome Extension folder via chrome://extensions (unzip first)

1 Click install via AppStore might be coming soon


WHY ?
You will probably find a use for it.
Browser Events , More Data , More Fun :)


Copy this code snippet and paste it into EG to get a makro that prints the url events. As shown in the image below

Code: Select all

<?xml version="1.0" encoding="UTF-8" ?>
<EventGhost Version="0.5.0-rc6">
    <Macro Name="HTTP EVENT" XML_Guid="{01704674-575F-4DCD-BB4D-8A8B7DBA9659}" Expanded="True">
        <Event Name="HTTP.*" XML_Guid="{AF169342-E60A-4965-8065-72E5FB57FAD2}" />
        <Action XML_Guid="{E38E5F70-5030-4CB5-A6C0-8FB3FB186470}">
            EventGhost.PythonCommand(u'print eg.event.suffix')
        </Action>
    </Macro>
</EventGhost>

For now the Chrome Extension needs to be installed
manually by unpacking the .zip and then mounting the folder into chrome
This can be done by going to chrome://extensions
Official release is pending ... will add the Appstore link if it gets approved ... for 1 click install

Also Idk where to post this since this isnt a plugin but a chrome extension ... let me know :D...





Image
Attachments
EG URL DETECT.zip
V 1.1 - URL Events - Chrome Extension
(10.93 KiB) Downloaded 49 times
Last edited by Medy on Fri Dec 20, 2019 6:45 am, edited 1 time in total.

dan Edens
Experienced User
Posts: 99
Joined: Mon Sep 24, 2018 7:57 pm

Re: Chrome Extension - Browser Events

Post by dan Edens » Mon Nov 18, 2019 2:19 am

O man I'm going to automate all the things

Medy
Experienced User
Posts: 97
Joined: Sat Nov 15, 2014 8:33 pm
Location: Germany

Re: Chrome Extension - Browser Events

Post by Medy » Mon Nov 18, 2019 3:53 am

have fun. xD ... happy to spread my craze for automation :D

Just noticed some unintented behavior when boot up chrome for the first time.
Chrome loads up some existing tabs so it creates events for them on start.

Maybe Ill keep it as a feature xD, since it might be useful xD ... but I maybe ill fix it :D

dan Edens
Experienced User
Posts: 99
Joined: Mon Sep 24, 2018 7:57 pm

Re: Chrome Extension - Browser Events

Post by dan Edens » Mon Nov 18, 2019 5:59 pm

I need to reproduce this a few times before i can comment on it.
But got this error at some point
it's working just fine tho!
loving this.

2019-11-18 10_49_39-Window.png

Code: Select all

// not needed yet ... but incase we add functionality for wiht content scripts.

/* chrome.runtime.onMessage.addListener(function(message, sender, sendResponse) {
  chrome.windows.get(sender.tab.windowId, function(chromeWindow) {
    console.log("sending to contentscript :", chromeWindow.state);
    sendResponse(chromeWindow.state);
  });
  return true;
}); */

function SendEvent(params) {
  let http = new XMLHttpRequest();
  let url = "http://127.0.0.1:80";
  // let params = activeTabId;
  http.open("POST", url, true);

  //Send the proper header information along with the request
  http.setRequestHeader("Content-type", "application/x-www-form-urlencoded");

  http.onreadystatechange = function() {
    //Call a function when the state changes.
    if (http.readyState == 4 && http.status == 200) {
      // alert(http.responseText);
    }
  };
  http.send(params);
}

chrome.tabs.onUpdated.addListener(function(tabId, changeInfo, tab) {
  let url = tab.url;
  /*     console.log("CHANGEINFO OBJ CHANGEINFO", changeInfo);
  console.log("CHANGEINFO OBJ TAB", tab);
  console.log("CHANGEINFOurl", tab.url);
  console.log("CHANGEINFOtabtitle", tab.title);
  console.log("tabId:", tabId); */

  if (changeInfo.status === "complete") {
    console.log("HOW OFTEN ", url);
    SendEvent(url);
  }
});

//1 OnActivated fires when you switch tab .. Data = tabId
//2

chrome.tabs.onActivated.addListener(function(activeInfo) {
  console.log(activeInfo.tabId);

  chrome.tabs.query(
    { active: true, currentWindow: true, status: "complete" },
    function(tabs) {
      let activeTab = tabs[0];
      console.log("active tabs loaded", tabs);
      let activeTabId = activeTab.url;
      console.log("URL:", activeTabId);
      SendEvent(activeTabId);
    }
  );

  // fixing event firing twice issue
  // https://stackoverflow.com/questions/6168124/chrome-extension-javascript-why-is-this-firing-twice
});
 

dan Edens
Experienced User
Posts: 99
Joined: Mon Sep 24, 2018 7:57 pm

Re: Chrome Extension - Browser Events

Post by dan Edens » Mon Nov 18, 2019 6:00 pm

dan Edens wrote:
Mon Nov 18, 2019 5:59 pm
I need to reproduce this a few times before i can comment on it.
But got this error at some point
it's working just fine tho!
loving this.


2019-11-18 10_49_39-Window.png

Code: Select all

// not needed yet ... but incase we add functionality for wiht content scripts.

/* chrome.runtime.onMessage.addListener(function(message, sender, sendResponse) {
  chrome.windows.get(sender.tab.windowId, function(chromeWindow) {
    console.log("sending to contentscript :", chromeWindow.state);
    sendResponse(chromeWindow.state);
  });
  return true;
}); */

function SendEvent(params) {
  let http = new XMLHttpRequest();
  let url = "http://127.0.0.1:80";
  // let params = activeTabId;
  http.open("POST", url, true);

  //Send the proper header information along with the request
  http.setRequestHeader("Content-type", "application/x-www-form-urlencoded");

  http.onreadystatechange = function() {
    //Call a function when the state changes.
    if (http.readyState == 4 && http.status == 200) {
      // alert(http.responseText);
    }
  };
  http.send(params);
}

chrome.tabs.onUpdated.addListener(function(tabId, changeInfo, tab) {
  let url = tab.url;
  /*     console.log("CHANGEINFO OBJ CHANGEINFO", changeInfo);
  console.log("CHANGEINFO OBJ TAB", tab);
  console.log("CHANGEINFOurl", tab.url);
  console.log("CHANGEINFOtabtitle", tab.title);
  console.log("tabId:", tabId); */

  if (changeInfo.status === "complete") {
    console.log("HOW OFTEN ", url);
    SendEvent(url);
  }
});

//1 OnActivated fires when you switch tab .. Data = tabId
//2

chrome.tabs.onActivated.addListener(function(activeInfo) {
  console.log(activeInfo.tabId);

  chrome.tabs.query(
    { active: true, currentWindow: true, status: "complete" },
    function(tabs) {
      let activeTab = tabs[0];
      console.log("active tabs loaded", tabs);
      let activeTabId = activeTab.url;
      console.log("URL:", activeTabId);
      SendEvent(activeTabId);
    }
  );

  // fixing event firing twice issue
  // https://stackoverflow.com/questions/6168124/chrome-extension-javascript-why-is-this-firing-twice
});
 

Actually reading the error you seem to already be on top of it. either way hope it helps.

Medy
Experienced User
Posts: 97
Joined: Sat Nov 15, 2014 8:33 pm
Location: Germany

Re: Chrome Extension - Browser Events

Post by Medy » Mon Nov 18, 2019 6:55 pm

Yes no need to worry about this one ...
was already aware when uploading... its not effecting anything

There is a process of loading & complete when chrome queries tabs ... im only using the complete status ... but eventlistener creates event for both loading & complete & then complains on loading that there is no url I think




Could probably fix this by just adding a simple if !== undefined or smth
probably fix it on the next version.

BTW I just read a post from kdschlosser & I think I will be working on adding some 2 way commincation (Chrome Extension/Eventghost) via WebSockets some point :D


I want this for opening new tabs , creating native browser notifications via eventghost.
So I will probably get into it soon ... Im not familiar with network stuff .. but I think it should be possible with the webserver plugin.

Peeking into it I noitced the websocket module had to be updated ... meaning you would have do this process described here :
https://github.com/EventGhost/EventGhost/issues/382

to fix the websockets part of the webserver plugin. I tested it just now & seems to work ... so I might be using it for creating a new plugin :D...

Anyway I will holla at ya if there is an update :D ...

Already Automated some stuff based on URLS with the current extension :D .... my lights change based on what tab / website im on :D ...
Im liking it so far xD...

Btw you must have some automation craze yourself . If you are tryieng to automate small things with events like these :D ...
I bet you have some cool stuff going :D ... If you like to share . Im always looking for new ideas.

Though Im aware everyone is into different things .. still might be a thing or 2 I can pick up on ^^...

I guess im really interisted in seeing what ppl using evenghost have setup ...

dan Edens
Experienced User
Posts: 99
Joined: Mon Sep 24, 2018 7:57 pm

Re: Chrome Extension - Browser Events

Post by dan Edens » Mon Nov 18, 2019 8:17 pm

Yeah man i think We'd both have alot to gain from sharing use cases!

I'm only really not getting into playing with it, Don't have my full 6 monitor setup at home like I do during the week hahaha.

But right away I went for this one,

Code: Select all

<?xml version="1.0" encoding="UTF-8" ?>
<EventGhost Version="WIP">
    <Macro Name="Login" XML_Guid="{BCF7948C-6FA9-4AB6-957F-5D289CD09578}" Expanded="True">
        <Event Name="Webserver.https://quickview.geo-instruments.com/login.php" XML_Guid="{814F6D71-4A02-4A3F-BD84-1621BD95D8C1}" />
        <Action XML_Guid="{F36D72C2-0B6F-4679-ABBC-BED217C3E916}">
            EventGhost.Wait(0.2)
        </Action>
        <Action XML_Guid="{3AE08916-9BD8-4CF5-9EB1-60FBEB9A1336}">
            Window.SendKeys(u'{Ctrl+F}Password', False, 2)
        </Action>
        <Action XML_Guid="{F36D72C2-0B6F-4679-ABBC-BED217C3E916}">
            EventGhost.Wait(0.2)
        </Action>
        <Action XML_Guid="{3AE08916-9BD8-4CF5-9EB1-60FBEB9A1336}">
            Window.SendKeys(u'{Escape}{Tabulator}{Tabulator}', False, 2)
        </Action>
        <Action XML_Guid="{F36D72C2-0B6F-4679-ABBC-BED217C3E916}">
            EventGhost.Wait(0.2)
        </Action>
        <Action XML_Guid="{3AE08916-9BD8-4CF5-9EB1-60FBEB9A1336}">
            Window.SendKeys(u'{Enter}', False, 2)
        </Action>
    </Macro>
</EventGhost>
Basically, Whenever it detects I'm on a login page for one of my websites, It automatically ctrl+F "passsword" tab tab enter to log me in.

Also, I make client websites for my Jobsites right, We use watchdog alarms if things break, but it's not very reliable enough to not do manual checks daily.
I can FINALLY detect which planview Is open so I can set up bots to check if data has updated, and take screenshots of each page.
Than when i get back from making coffee, I have EG spread them out across my monitors and can see every thing I need to see in 1 quick shot.

I've been trying to do this with Mouse movements and a pre-planned order, but it's been really REALLY hard to manage with load times and using a laptop that switches constantly between single and triple monitor, and changes to where things show up.

Being able to fine tune control over chrome like what your talking about would be AWESOME. I have alot of daily browsing that I could easily automate with those events. I'm busy the first half of this week with the wifes birthday and an equipment install tomorrow, But I'll see if I can't help you write it when I find time!


But one part you might be interested in is the tool I use to quickly remove tiresome clicks from webpages I visit often. Or just building mouse click bots in general.

It grabs your mouses current location and sets the clipboard as the "copy as python" contents for a python script to move the mosue to that location and click (or double click if you want, using bots like this REQUIRE good testing, some things require double clicks when automated where normally they wouldn't for who knows why lol)I have a setup to return the mouse to previous position already written out if you end up using this, It's broken but I should fix it anyway.

Output:

Code: Select all

eg.plugins.Mouse.MoveAbsolute(1696,650, 2, False, True)
eg.plugins.EventGhost.Wait(.2)
eg.plugins.Mouse.LeftDoubleClick()
#eg.plugins.Mouse.LeftButton()
eg.plugins.EventGhost.Wait(.5)
EG XML:

Code: Select all

<?xml version="1.0" encoding="UTF-8" ?>
<EventGhost Version="WIP">
    <Folder Name="Mouse coords tool" Enabled="False" XML_Guid="{0387646E-F931-4D77-B805-36B9AE9653FB}" Expanded="True">
        <Macro Name="Clip mouse cords" XML_Guid="{EACB8DD5-EE38-43D6-B03C-D182BB850C56}" Expanded="True">
            <Event Name="Keyboard.LCtrl+Oem3" XML_Guid="{ED929CB1-0674-45EF-AC81-0D5038199BF5}" />
            <Action Name="Set Mouse coords as H_x,H_y" XML_Guid="{1B437B65-3FEC-453A-B292-B7517ECCDF9C}">
                EventGhost.PythonScript(u'import win32api\neg.globals.h_x = 1\neg.globals.h_y = 1\ndef mPos(x, y):\n    win32api.SetCursorPos((x, y))\ndef start():\n    eg.globals.h_x, eg.globals.h_y = win32api.GetCursorPos()\n    print "Mouse was at " + str(eg.globals.h_x) + ", " + str(eg.globals.h_y)    \n    return eg.globals.h_x, eg.globals.h_y\neg.globals.h_x, eg.globals.h_y = start()\nvar1 = """eg.plugins.Mouse.MoveAbsolute({eg.globals.h_x},{eg.globals.h_y}, 2, False, True)\neg.plugins.EventGhost.Wait(.2)\neg.plugins.Mouse.LeftDoubleClick()\n#eg.plugins.Mouse.LeftButton()\neg.plugins.EventGhost.Wait(.5)\n"""\neg.plugins.System.SetClipboard(var1)\neg.plugins.Window.SendKeys(u\'{Backspace}\', False, 2)')
            </Action>
            <Action XML_Guid="{DD6F77AB-8460-46B3-B4A1-C1FDAD281C46}">
                EventGhost.JumpIfLongPress(1.0, XmlIdLink(2270))
            </Action>
        </Macro>
        <Macro Name="Clip mouse cords Basic" XML_Guid="{EACB8DD5-EE38-43D6-B03C-D182BB850C56}" Expanded="True">
            <Action Name="Set Mouse coords as H_x,H_y" XML_Guid="{1B437B65-3FEC-453A-B292-B7517ECCDF9C}">
                EventGhost.PythonScript(u'import win32api\neg.globals.h_x = 1\neg.globals.h_y = 1\ndef mPos(x, y):\n    win32api.SetCursorPos((x, y))\ndef start():\n    eg.globals.h_x, eg.globals.h_y = win32api.GetCursorPos() #This works fine.\n    print "Mouse was at " + str(eg.globals.h_x) + ", " + str(eg.globals.h_y) #This also displays normally.\n    return eg.globals.h_x, eg.globals.h_y\neg.globals.h_x, eg.globals.h_y = start()\neg.plugins.System.SetClipboard(u\'{eg.globals.h_x},{eg.globals.h_y}\')')
            </Action>
        </Macro>
    </Folder>
</EventGhost>

Medy
Experienced User
Posts: 97
Joined: Sat Nov 15, 2014 8:33 pm
Location: Germany

Re: Chrome Extension - Browser Events

Post by Medy » Mon Nov 18, 2019 10:24 pm

No need for help.
Im just beginner level ... but I get around with StackOverflow :D + documentation .. for simple scripts ..


Atm im busy learning other stuff though ...

I have a basic overview for chrome extension dev .. creating a couple of extension for myself.
With content scripts you can do things like :

- Click on buttons
- input data into input fields
- select input fields / elements / put into focus


This should satisfye most use cases :D..

So you wouldnt need to rely on mouse position but rather select the html buttons / fields directly.
(I used tons of positioning stuff back in the day with android .. but it always gets unreliable eventually ...
So things like css selectors should be more reliable & "feel" better ;)

I think these 2-3 things mentioned are smth I will look into adding as features ... if it comes to that
Should be enough to automate login events .. or put stuff into search boxes ...

This will only work if I can get websocket stuff working.
You never know what kind of roadblocks there are though ...

I dont want to put a date on this ... since im mostly doing this EG stuf whenever I feel like it :D...
But it will be my next project & I will be sharing stuff from time to time.

The browser is where 99 % of my automation happens .. so yeah .. it will be nice to have control over it ;)
Last edited by Medy on Mon Nov 18, 2019 10:37 pm, edited 1 time in total.

dan Edens
Experienced User
Posts: 99
Joined: Mon Sep 24, 2018 7:57 pm

Re: Chrome Extension - Browser Events

Post by dan Edens » Mon Nov 18, 2019 10:36 pm

Eg has replaced alot of what I did with it, but used to be huge into Tasker and position control through that.
ex. Have a neat one that lets you open my apartment gate by texting me through coordinate clicks!

Was actually thinking about asking what you just described. if I'd be able to pass element name info for that exact reason!
so spot on haha I'll dive into learning about css selectors

I should have done this research ages ago, for "beginner level" you spat out a working extension that fixed something I've been hunting for like months lol in like minutes.
very exciting stuff.

Medy
Experienced User
Posts: 97
Joined: Sat Nov 15, 2014 8:33 pm
Location: Germany

Re: Chrome Extension - Browser Events

Post by Medy » Mon Nov 18, 2019 10:47 pm

Well basicly all I did is playing with javascript up to now.... Maybe im intermediate as this point
when it comes to js :D ... but not webdev as a whole ..

I even jumped into react frontend framework , learned some php ... then I realized my css is so basic that any User interface I create looks like noob...

Been slacking alot with css ... but now its a major focus for me xD ... Will probably take me a couple months to to get good...
But I know I will be ready eventually xD...

Doing a advances css course atm ... to be able to create fancy stuff :D to impress .. for job hunting purpose as well as future hobby projects xD..

dan Edens
Experienced User
Posts: 99
Joined: Mon Sep 24, 2018 7:57 pm

Re: Chrome Extension - Browser Events

Post by dan Edens » Wed Nov 20, 2019 4:22 pm

screenshot-1574265763212.jpg
Yeah this is about the extent of my noob UI work. lol
There's alot of need for good front end Devs. I suck ass at making things look good lol.

I started to program trying to be a better cook when I worked at chilis. Created a inventory system that improved their daily build lists, could pull up reciepts through alexa to a tablet, managed cooling log and timers through voice to our smart watches. Got interested in automated data gathering as a hobby, tracking my babies stuff, habits, diet, basically any data i could find.
Now I manage Geological sensor data on construction sites woo lol
That's lead me heavily into Python, in which EG has really been a great tool. been into creating random and specific file manipulation tools and bots to make my code/efforts reusable.

Javascript is really what I'm missing but just haven't quite figured out where to take the plunge.
I'm pretty sure Tasker(are most apps javascript? I know nothing) is written in Javascript, so I've been psudocoding with it for two years and probably know more than I'd admit to, but absolutely zero syntax lol.

If the variable/array structure that tasker uses is javascript than I adore it over python and it's stupid lists.
1 capital letter anywehere in name = global.
all lowercase = local to task.
Perfection. lol

What i reeally want to do is get into Flask, and get better with the eg webserver stuff. so much potential I haven't touched.
I need 2 days everyday i swear. lol

Medy
Experienced User
Posts: 97
Joined: Sat Nov 15, 2014 8:33 pm
Location: Germany

Re: Chrome Extension - Browser Events

Post by Medy » Wed Nov 20, 2019 9:57 pm

I just fired up a python crash course now xD ... to create an EG plugin after ... with webserver / WebSocket functionality ...


Stay tuned ...

I gotta say python is probably the easiest understandable syntax for me so far.

Im not really sure about python for webdev ... I mean javascript was really made for the browser so I would prefer that.
But I guess with flask you could get by without javascript and create most stuff.

If your priority is python ... then sure you might not need to bother with javascript.

I only put in this effort for python because I might eventually create more plugin stuff & maybe get a rasperry py down the road ....

My priority will stll be javascript and its ecosystem.

dan Edens
Experienced User
Posts: 99
Joined: Mon Sep 24, 2018 7:57 pm

Re: Chrome Extension - Browser Events

Post by dan Edens » Thu Nov 21, 2019 2:11 pm

IMG_20191121_075645.jpg
Ive been known to dable with one... or two... or four pies..
lol
No honestly after working with EG so much, node-red just seems heavy and slow to deal with.
I basically just have it recieve EG commands through Joaomgcd's Join to fire scripts
I'd say the PI is worth the money, You really only need a 10 dollar PiW if you want to be cheap and play with python on raspbian.
Best tool to get started I wish I'd known about is Barrier
Barrier is a really cool program that lets you share your mouse/keyboard across a bunch of machines so you can be a double hacker
source.gif

I know I will get inevitably get into JavaScript so I'm not going to put it off to much longer, but flask is the direction my company is going to go.
honestly I wish we just ran everything with EG. lol
I could do my timesheets by flickering the lights X many times in my closet!


If you want to learn python for EG, you should read about what stackless python is and through some of the forum stuff about how Eg's python is diffrent than normal. It runs 2.7 so you need to install that seperatly from 3 and install librays into 2.7 than move them into EG.
I'll look for links if i can find a minute. Have a storm crossing texas today so I'll have a million alarms going on on my gear all over the state lol

User avatar
kgschlosser
Site Admin
Posts: 5395
Joined: Fri Jun 05, 2015 5:43 am
Location: Rocky Mountains, Colorado USA

Re: Chrome Extension - Browser Events

Post by kgschlosser » Thu Nov 21, 2019 2:36 pm

This might interest both of you. since one wants to learn javascript and the other knows javascript.


I have been working on a complete port of the DOM. almost the entire vocabulary and the way it functions has been preserved.
I can build the HTML files as well as the CSS files real time without any templates. This is where true dynamic comes in. The existing
solutions like django rely on HTML template files. so in reality that is not truly dynamic. because it is limited by what templates are written.

This done not have that limitation.

Now remember when.... javascript first came into use.. There was a HUGE hooray about client side processing..

well look at what that ended up being... a monkey f'in a football that's what. to many browsers that operate differently. it ended up being like writing a cross platform application. and the sole purpose was to not have that. client side processing from the administrative end is a complete nightmare. to many variables and an infinite number of system layouts. it causes all sorts of problems. it also adds to the slowdown of webpages being loaded because code that has nothing to do with the clients system has to get sent because it gets processed on the client and the determination on what portions of the code need to get run gets done on the clients PC..

How about lessening the bandwidth and only sending the code needed.. That can be done!. How about a webpage getting dynamically built when a button gets pressed on the client side.. can do that as well. without any other protocol involved except HTTP. No SQL no Websockets..

A single connection can be made to a SQL server that would handle all database queries. having a SQL server with 100 connections each querying their own data has got to be slower then a single connection making the queries for 100 users. first off the connection would be persistent so that is always a +. second is you would not have to worry about someone "hacking" into the database because that single connection is a local connection so the SQL server would never have to have a public interface.


So you get the benefits of server side processing without the support headache, you get better security, and a reduction in bandwidth use. and also a fully dynamic front end.

and there actually is no website so to speak. so paths to portions of a website can be dynamically created and removed as well. because there is no file structure for the website because there are no files.
If you like the work I have been doing then feel free to Image

User avatar
kgschlosser
Site Admin
Posts: 5395
Joined: Fri Jun 05, 2015 5:43 am
Location: Rocky Mountains, Colorado USA

Re: Chrome Extension - Browser Events

Post by kgschlosser » Thu Nov 21, 2019 2:51 pm

To be honest.. Stackless Python may have been a good thing when python was really young. It made threading easy. it also was a big save on resources back when 128MB of ram was considered to be a lot of memory. It really has no place anymore with the computers made today. It is kept alive only because the guy maintaining it has several projects that use it. the current maintainer I do not think is the original author I believe it got abandoned.

For about a year I was trying to remove the use of Stackless while preserving the API. because Stackless had not seen any development in years.. then the project got moved to GitHub and someone started working on it again..

EG is going to be forced into a massive code overhaul really soon. with the EOL of python 2 coming up development stopping for wxPython 3.x there are going to have to be some large changes made. as well as some really big decisions.

Stackless should be dropped at that time. and possibly wxPython (in favor of a web based interface). having the availability of running EG as a service.

I have successfully removed wxPython and had EG able to receive input and post events over a Websocket connection and it was installed as a service while doing this. without stackless.

The largest and hardest thing to overcome are the application plugins. there would need to be some kind of an accessory application that would run when a user logs in. so it would be able to communicate with applications and pass the information back to the service. This is because a service cannot interact with the desktop.. and technically speaking if a user is not logged in there is no desktop to even communicate with anywho. The up side is that if a desktop has multiple user logins (using RDP) or even fast user switching EG would be able to handle it.
If you like the work I have been doing then feel free to Image

Post Reply