Giter VIP home page Giter VIP logo

manictime-client-plugin-example's People

Contributors

andrejf avatar jurijr avatar kaiserinderwelt avatar tomazv avatar vanjar avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

manictime-client-plugin-example's Issues

Import & Export

Just going through trying to create a plugin for listing all open tickets assigned to me from a ticket management system, and present them in ManicTime as tags. This is pretty easy, no problem there. Though I did notice, that if I selectively pull one tag from the list, and not the entire TagSourceItem entry, I don't get any of the HiddenTagLabel the example has, so that's not going to work for exporting my items afterward. Fortunately it's not a big deal to simply regex the tags, and look for a anything matching the format the external ticketing systems uses for ticket numbers.

However now I'm trying to export the activities out to the time management system and I'm running into issues. I'd like to update the information in ManicTime so that I add another tag to any activities that have been newly exported. But all of the methods for updating groups expect a full Group object instance, or Dictionary<string, Group>, which I'm not sure where that comes into play here?

I see methods for updating, setting, adding, but none of their signatures seem to be really intuitive on how to use them when I'm running the export. Given the example, is it possible to modify the TagActivitys returned by (or inside of) the example TagsExporter.ExportTags() method?

Tracker Plugin wont build

Since the new version of ManicTime the Tracker Plugin will give the error CS0117.
And even when Building the Tag Plugin, the Window to send the Tags disappeared.

Timeline plugin - How to use instructions incorrect?

Are the Timeline plugin "How to use" instructions correct?

I am asking because when I am on the step "3. Click on Add timeline button", then I do not see the "Timeline plugin example" that is displayed in the step's screenshot.

My "db folder" is at "C:\Users\jon\AppData\Local\Finkit\ManicTime". Here are the 11 files for the plugin that I have within that folder . As far as I can tell, their paths match the path that is in the instructions.

\Plugins\Packages\TimelinePlugins.TrayTagStopwatch\PluginIcon.png
\Plugins\Packages\TimelinePlugins.TrayTagStopwatch\PluginSpec.json
\Plugins\Packages\TimelinePlugins.TrayTagStopwatch\Lib\Finkit.ManicTime.Client.dll
\Plugins\Packages\TimelinePlugins.TrayTagStopwatch\Lib\Finkit.ManicTime.Common.dll
\Plugins\Packages\TimelinePlugins.TrayTagStopwatch\Lib\Finkit.ManicTime.Shared.dll
\Plugins\Packages\TimelinePlugins.TrayTagStopwatch\Lib\PluginIcon.png
\Plugins\Packages\TimelinePlugins.TrayTagStopwatch\Lib\PluginSpec.json
\Plugins\Packages\TimelinePlugins.TrayTagStopwatch\Lib\TagPlugins.Core.dll
\Plugins\Packages\TimelinePlugins.TrayTagStopwatch\Lib\TimelinePlugins.TrayTagStopwatch.dll
\Plugins\Packages\TimelinePlugins.TrayTagStopwatch\Lib\TimelinePlugins.TrayTagStopwatch.dll.config
\Plugins\Packages\TimelinePlugins.TrayTagStopwatch\Lib\TimelinePlugins.TrayTagStopwatch.pdb

I am also attaching the files to this issue.
Packages.zip

I tried exiting ManicTime and restarting ManicTime before looking. I tried restarting my entire computer before looking. Neither made any difference.

So... when I go to my "Add Timeline" dialog window, why do I not see the "Timeline plugin example" item?

Incidentally, I did open the "Plugin manager", and I do not see the plugin there. It is not in the "Installed plugins" tab, and it is not in the "More plugins" tab.

The requested service IEventHub has not been registered

I'm generally having a lot of issues running the Tag Plugin in ManicTime v4.7.5.1

This stack trace is the first issue that I ran into, and I'm wondering if this repo has not been updated to account for some changes in the plugin api.

Autofac.Core.Registration.ComponentNotRegisteredException: The requested service 'Finkit.ManicTime.Common.IEventHub' has not been registered. To avoid this exception, either register a component to provide the service, check for service registration using IsRegistered(), or use the ResolveOptional() method to resolve an optional dependency.
at Autofac.ResolutionExtensions.ResolveService(IComponentContext context, Service service, IEnumerable`1 parameters)
at Finkit.ManicTime.Shared.ObjectBuilding.ComponentContextExtensions.ResolveUnregistered(IComponentContext container, Type serviceType, IDictionary`2 parameters)
at Finkit.ManicTime.Shared.ObjectBuilding.AutofacObjectBuilder.Build(Type objectType, ConstructorParameter[] parameters)
at Finkit.ManicTime.Shared.Plugins.ServiceProviders.PluginCommands.PluginCommandRegistry.<>c__DisplayClass7_0.b__0(Type t)
at System.Linq.Utilities.<>c__DisplayClass2_0`3.b__0(TSource x)
at System.Linq.Enumerable.SelectIPartitionIterator`2.PreallocatingToArray(Int32 count)
at System.Linq.Enumerable.SelectIPartitionIterator`2.ToArray()
at System.Linq.Enumerable.ToArray[TSource](IEnumerable`1 source)
at Finkit.ManicTime.Shared.Plugins.ServiceProviders.PluginCommands.PluginCommandRegistry.ResolveCommands(IEnumerable`1 commandTypes, PluginSpec spec)
at Finkit.ManicTime.Shared.Plugins.ServiceProviders.PluginCommands.PluginCommandRegistry.b__6_0(KeyValuePair`2 kv)
at System.Linq.Enumerable.SelectEnumerableIterator`2.ToArray()
at System.Linq.Buffer`1..ctor(IEnumerable`1 source)
at System.Linq.OrderedEnumerable`1.ToArray()
at System.Linq.Enumerable.ToArray[TSource](IEnumerable`1 source)
at Finkit.ManicTime.Shared.Plugins.ServiceProviders.PluginCommands.PluginCommandRegistry.ResolveCommands()
at Finkit.ManicTime.Client.Views.MainView.PluginMenu.PluginMenuViewModel.EnumerateItems()+MoveNext()
at System.Collections.Generic.LargeArrayBuilder`1.AddRange(IEnumerable`1 items)
at System.Collections.Generic.EnumerableHelpers.ToArray[T](IEnumerable`1 source)
at System.Linq.Enumerable.ToArray[TSource](IEnumerable`1 source)
at Finkit.ManicTime.Client.Views.MainView.PluginMenu.PluginMenuViewModel.EnsureLoaded()
at Finkit.ManicTime.Client.Views.MainView.PluginMenu.PluginMenuViewModel.GetEnumerator()
at Finkit.ManicTime.Client.Views.MainView.PluginMenu.PluginMenuViewModel.System.Collections.IEnumerable.GetEnumerator()
at MS.Internal.Data.EnumerableCollectionView.LoadSnapshotCore(IEnumerable source)
at MS.Internal.Data.EnumerableCollectionView..ctor(IEnumerable source)
at MS.Internal.Data.ViewManager.GetViewRecord(Object collection, CollectionViewSource cvs, Type collectionViewType, Boolean createView, Func`2 GetSourceItem)
at MS.Internal.Data.DataBindEngine.GetViewRecord(Object collection, CollectionViewSource key, Type collectionViewType, Boolean createView, Func`2 GetSourceItem)
at System.Windows.Data.CollectionViewSource.GetDefaultCollectionView(Object source, Boolean createView, Func`2 GetSourceItem)
at System.Windows.Data.CollectionViewSource.GetDefaultCollectionView(Object source, DependencyObject d, Func`2 GetSourceItem)
at System.Windows.Controls.ItemCollection.SetItemsSource(IEnumerable value, Func`2 GetSourceItem)
at System.Windows.Controls.ItemsControl.OnItemsSourceChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
at System.Windows.DependencyObject.OnPropertyChanged(DependencyPropertyChangedEventArgs e)
at System.Windows.FrameworkElement.OnPropertyChanged(DependencyPropertyChangedEventArgs e)
at System.Windows.DependencyObject.NotifyPropertyChange(DependencyPropertyChangedEventArgs args)
at System.Windows.DependencyObject.UpdateEffectiveValue(EntryIndex entryIndex, DependencyProperty dp, PropertyMetadata metadata, EffectiveValueEntry oldEntry, EffectiveValueEntry& newEntry, Boolean coerceWithDeferredReference, Boolean coerceWithCurrentValue, OperationType operationType)
at System.Windows.DependencyObject.InvalidateProperty(DependencyProperty dp, Boolean preserveCurrentValue)
at System.Windows.DependencyObject.InvalidateProperty(DependencyProperty dp)
at System.Windows.Data.BindingExpressionBase.Invalidate(Boolean isASubPropertyChange)
at System.Windows.Data.BindingExpression.TransferValue(Object newValue, Boolean isASubPropertyChange)
at System.Windows.Data.BindingExpression.Activate(Object item)
at System.Windows.Data.BindingExpression.AttachToContext(AttachAttempt attempt)
at System.Windows.Data.BindingExpression.MS.Internal.Data.IDataBindEngineClient.AttachToContext(Boolean lastChance)
at MS.Internal.Data.DataBindEngine.Task.Run(Boolean lastChance)
at MS.Internal.Data.DataBindEngine.Run(Object arg)
at MS.Internal.Data.DataBindEngine.OnLayoutUpdated(Object sender, EventArgs e)
at System.Windows.ContextLayoutManager.fireLayoutUpdateEvent()
at System.Windows.ContextLayoutManager.UpdateLayout()
at System.Windows.UIElement.UpdateLayout()
at System.Windows.Interop.HwndSource.SetLayoutSize()
at System.Windows.Interop.HwndSource.set_RootVisualInternal(Visual value)
at System.Windows.Interop.HwndSource.set_RootVisual(Visual value)
at System.Windows.Window.SetRootVisual()
at System.Windows.Window.SetRootVisualAndUpdateSTC()
at System.Windows.Window.SetupInitialState(Double requestedTop, Double requestedLeft, Double requestedWidth, Double requestedHeight)
at System.Windows.Window.CreateSourceWindow(Boolean duringShow)
at System.Windows.Window.CreateSourceWindowDuringShow()
at System.Windows.Window.SafeCreateWindowDuringShow()
at System.Windows.Window.ShowHelper(Object booleanBox)
at System.Windows.Window.Show()
at Finkit.ManicTime.Client.Main.Logic.MainWindowController.ActivateMainWindow(Boolean activateAsTopmost)
at Finkit.ManicTime.Client.Logic.ClientApplication.ManicTimeClient.ApplicationController.ActivateMainWindow()
at Finkit.ManicTime.Client.Logic.ClientApplication.ManicTimeClient.ApplicationController.ShowMainWindow()
at Finkit.ManicTime.Client.Logic.ClientApplication.ManicTimeClient.ClientApplicationInstance.Run()
at Finkit.ManicTime.Client.WpfApp.App.StartApplication(StartupEventArgs e)
at Finkit.ManicTime.Client.WpfApp.App.Application_Startup(Object sender, StartupEventArgs e)
at System.Windows.Application.OnStartup(StartupEventArgs e)
at System.Windows.Application.<.ctor>b__1_0(Object unused)
at System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate callback, Object args, Int32 numArgs)
at System.Windows.Threading.ExceptionWrapper.TryCatchWhen(Object source, Delegate callback, Object args, Int32 numArgs, Delegate catchHandler)

System.Object:

***ManicTime Version 4.7.5.1

.json file targets old manictime version

Please update the .json file(s) provided so that they target the latest version.

Come to think of it, the .dlls provided are also out of date. please can they be updated too?

System cannot find the specified file.

Looking to make a Tag plugin. I cloned your plugin example and followed your "How to use" page on GitHub. I will dig into this further...

System.IO.FileNotFoundException: The system cannot find the file specified. (Exception from HRESULT: 0x80070002)
at System.Reflection.RuntimeAssembly.nLoadFile(String path, Evidence evidence)
at System.Reflection.Assembly.LoadFile(String path)
at Finkit.ManicTime.Shared.Plugins.ServiceProviders.ServiceProviderAssemblyLoader.EnsureAssembliesLoaded(IEnumerable`1 pluginAssemblyFileNames)

***ManicTime Version 4.0.15.0

Future move from WPF to MAUI?

Not a direct issue, more of a question regarding potential future changes in the Plugin Code Basis.

We are working on a TagPlugin and are currently working on the GUI, which, as of now, opperates on WPF. However, one of our senior developers mentioned that WPF might be mostly replaced by .NET MAUI across the .NET World in the near future. So we are wondering whether you plan on moving ManicTime, and the Code Basis of the Plugin(s), to MAUI any time soon or whether you will just stick to WPF?

Access AutoTag activity from export plugin

Is there a way to access AutoTag activity via a plugin?

I've written a plugin based on the SampleTagPlugin exporter which connects to the Harvest timetracking API and adds tag activity as Harvest Time Entries, which all works perfectly. However I'm only able to get tag activity for manually added tags, but my ManicTime workflow relies solely on AutoTags. I'd rather not have to constantly send autotags to tags in the GUI so my time gets picked up by my plugin.

I've looked at editing GetTagActivitiesAsync() to try and make it get activity from the AutoTag timeline but with no success. What would be the correct way to achieve this? Thanks.

Timeline example doesn't show up in "Add timeline" window

I'm having trouble getting the timeline example to show up in ManicTime. Here's what I did:

  1. Clone repo (located in $REPO)
  2. Open timeline example ($REPO\source\timeline-plugin\TimelinePlugin.sln)
  3. Build Release
  4. Copy $REPO\installable-plugin\Plugins\Packages\ to C:\Users\me\AppData\Local\Finkit\ManicTime\Plugins. (Note that there was no "Packages" directory before I did this; the Plugins folder only contained Cache, Cache.UI, and Storage directories.)
  5. Note the location of the PluginSpec.json file: C:\Users\me\AppData\Local\Finkit\ManicTime\Plugins\Packages\ManicTime.TagSource.SampleTagPlugin\PluginSpec.json. There is a Lib folder there as well, which has some binaries in it.
  6. Re-open ManicTime
  7. Click the gear above the timeline
  8. Click "Add timeline"
  9. EXPECTED: Select custom plugin. ACTUAL: The custom plugin was not there.

Did I miss a step? Perhaps the folder structure has changed since the README was written for the timeline example?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.