/// <summary> /// The main. /// </summary> /// <param name="args"> /// The args. /// </param> private static void Main(string[] args) { // --------------------------------------------------------------------// // Don't change this from scimonshouse.net or you'll leak credentials! // // This is an internal-only development install // --------------------------------------------------------------------// string phabUrl = "https://phabricator.stwalkerster.co.uk/"; phabUrl = "https://fab.scimonshouse.net/"; string token = "api-pthzak4snefxww3rzllecspgilpj"; token = "api-rul3ssevvzaedtdqxhdhg6sfzajv"; var client = new ConduitClient(phabUrl, token); var maniphest = new Maniphest(client); var constraint = ManiphestSearchConstraintFactory.Statuses(new List <string> { "open" }); var searchConstraints = new List <ApplicationEditorSearchConstraint> { constraint }; IEnumerable <ManiphestTask> response = maniphest.Search(constraints: searchConstraints).ToList(); }
private List <BreadcrumbModel> GenerateBreadcrumbs(ConduitClient client, string slug) { dynamic page; var breadcrumbs = new List <BreadcrumbModel>(); var slugBuilt = ""; var parts = slug.Split('/'); for (int i = 0; i < parts.Length - 1; i++) { if (slugBuilt.Length > 0) { slugBuilt += "/"; } slugBuilt += parts[i]; page = this.m_Phabricator.GetWikiPage(client, slugBuilt); breadcrumbs.Add(new BreadcrumbModel { Text = page.title, Slug = this.RewriteSlug(page.slug) }); } page = this.m_Phabricator.GetWikiPage(client, slug); breadcrumbs.Add(new BreadcrumbModel { Text = page.title, Slug = null }); return(breadcrumbs); }
public dynamic GetWikiHierarchy(ConduitClient client, string slug) { var hierarchy = this.WikiHierarchyCache.Get(slug); if (hierarchy == null) { try { hierarchy = client.Do("phriction.hierarchy", new { slug = slug, depth = 2 }); } catch (ConduitException) { // Ignore this error; Phabricator might not support // the phriction.hierarchy method. hierarchy = new List <object>(); } if (hierarchy == null) { throw new NotImplementedException(slug); } this.WikiHierarchyCache.Add( new CacheItem(slug, hierarchy), new CacheItemPolicy { AbsoluteExpiration = DateTimeOffset.Now.AddMinutes(15) } ); } return(hierarchy); }
public ConduitClient GetConduitClient() { var client = new ConduitClient("http://code.redpointsoftware.com.au/api"); client.Certificate = ConfigurationManager.AppSettings["ConduitCertificate"]; client.User = ConfigurationManager.AppSettings["ConduitUser"]; return(client); }
private void ConnectButton_Click(object sender, RoutedEventArgs e) { Console.WriteLine("Connecting to the TCP server."); if (!ConduitClient.Connect()) { Console.WriteLine("Unable to connect to the TCP server."); return; } Console.WriteLine("Connected successfully."); ConduitClient.DataReceived += (o, ev) => { switch (ev.Packet.PacketType) { case ConduitPacketType.Print: Console.WriteLine(Encoding.Default.GetString(ev.Packet.Data)); break; case ConduitPacketType.ProcessSelect: Console.WriteLine("Process selection received."); Dispatcher.Invoke(() => { var pid = Convert.ToInt32(Encoding.Default.GetString(ev.Packet.Data)); SelectedProcess.Process = Process.GetProcessById(pid); var icon = ProcessUtility.GetProcessIcon(SelectedProcess.Process); if (icon != null) { var source = Imaging.CreateBitmapSourceFromHIcon(icon.Handle, new Int32Rect(0, 0, icon.Width, icon.Height), BitmapSizeOptions.FromEmptyOptions()); SelectedProcess.Icon = source; } else { Console.WriteLine("Icon could not be resolved."); } SelectedProcessIcon.Source = SelectedProcess.Icon; SelectedProcessName.Content = SelectedProcess.Process.ProcessName; }); break; } }; ScriptListBox.IsEnabled = true; ExecuteButton.IsEnabled = true; TerminateButton.IsEnabled = false; ConnectButton.IsEnabled = false; }
public static void ExecuteScript(Script script) { Console.WriteLine($"Compiling: {script.Info.Name}."); script.Compile(); Console.WriteLine($"Sending execution packet."); ConduitClient.Send(new ConduitPacket(ConduitPacketType.Execute, Encoding.Default.GetBytes(script.OutputPath))); }
private WikiPageModel GetContentFor(ConduitClient client, string slug) { var page = this.m_Phabricator.GetWikiPage(client, slug); var remarkup = this.m_Phabricator.ProcessRemarkup(client, page.content); var hierarchy = this.m_Phabricator.GetWikiHierarchy(client, slug); return(new WikiPageModel { Title = page.title, Slug = page.slug, Content = new MvcHtmlString(remarkup), Children = this.ConvertHierarchyResultToList(hierarchy) }); }
public TychaiaTuesdayIssueModel GetTychaiaTuesdayIssue(ConduitClient client, int issue) { // Doesn't use ConduitClient yet, waiting on feedback to see whether there's a way // to get a specific issue out of Phame. My concern is that the feed only returns the // last 10 or so items, so if someone tries to visit an ID more than 10 posts ago, we // won't be able to display it :/ var feed = this.GetFeed("2"); var entry = feed.Entries.FirstOrDefault( x => x.Id.Uri == new Uri("http://code.redpointsoftware.com.au/phame/post/view/" + issue + "/")); return(new TychaiaTuesdayIssueModel { Title = entry.Title.Content, Content = entry.Content.Content }); }
public PhabricatorExternalProvider(IAppConfiguration appConfig, ILogger logger) { this.logger = logger; var url = appConfig.PhabUrl; var key = appConfig.PhabToken; if (string.IsNullOrWhiteSpace(url) || string.IsNullOrWhiteSpace(key)) { this.active = false; return; } this.active = true; var conduitClient = new ConduitClient(url, key); this.paste = new Paste(conduitClient); }
public dynamic GetWikiPage(ConduitClient client, string slug) { var page = this.WikiPageCache.Get(slug); if (page == null) { page = client.Do("phriction.info", new { slug = slug }); this.WikiPageCache.Add( new CacheItem(slug, page), new CacheItemPolicy { AbsoluteExpiration = DateTimeOffset.Now.AddMinutes(15) } ); } return(page); }
public string ProcessRemarkup(ConduitClient client, string remarkup) { var sha1 = SHA1(remarkup); var html = RemarkupCache.Get(sha1) as string; if (html == null) { html = client.Do("remarkup.process", new { context = "phriction", content = remarkup }).content; this.RemarkupCache.Add( new CacheItem(sha1, html), new CacheItemPolicy { SlidingExpiration = new TimeSpan(1, 0, 0) } ); } return(html); }
public BugReporter(IAppConfiguration appConfig, ILogger logger) { this.logger = logger; var url = appConfig.PhabUrl; var key = appConfig.PhabToken; if (string.IsNullOrWhiteSpace(url) || string.IsNullOrWhiteSpace(key)) { this.active = false; return; } this.active = true; var conduitClient = new ConduitClient(url, key); this.maniphest = new Maniphest(conduitClient); var phidLookup = new PHIDLookup(conduitClient); this.projectPhid = phidLookup.GetPHIDForObject("#eits")["#eits"]; }
public Maniphest(ConduitClient client) : base(client) { }
public PHIDLookup(ConduitClient client) { this.client = client; }
public Phrequent(ConduitClient client) : base(client) { }
public ProjectWorkboardColumns(ConduitClient client) : base(client) { }
public Projects(ConduitClient client) : base(client) { this.Columns = new ProjectWorkboardColumns(client); }
/// <summary> /// Initializes a new instance of the <see cref="ConduitApplicationBase"/> class. /// </summary> /// <param name="client"> /// The client. /// </param> protected ConduitApplicationBase(ConduitClient client) { this.client = client; }
public Diffusion(ConduitClient client) { this.Repositories = new DiffusionRepository(client); }
public static void TerminateScript() { Console.WriteLine("Sending termination packet."); ConduitClient.Send(new ConduitPacket(ConduitPacketType.Terminate)); }
internal DiffusionRepository(ConduitClient client) : base(client) { }
/// <summary> /// Initializes a new instance of the <see cref="ConduitApplicationBase"/> class. /// </summary> /// <param name="client"> /// The client. /// </param> public Files(ConduitClient client) : base(client) { }
public Paste(ConduitClient client) : base(client) { }