HNHacker News
TopNewBestAskShowJobs

vicke4

110 karma · joined February 5, 2019

submissionscomments
vicke4··on Position of Now in Time Visualised
Found this site online, the cookie banner ruins the experience. Tap on it to make it go away.
vicke4··on Show HN: Leveraging non-standard browser API to rename multiple local files
Hey HN,

Smart Bulk Renamer can bulk rename your local & cloud files. For now, Google Drive, Dropbox & OneDrive are supported.

Local file renaming works only on Chromium-based browsers because they can handle local files using the FileSystemHandle.move API [1].

Smart Bulk Renamer is heavily inspired by the Mac app "Name Mangler" [2].

You can try it without creating an account, and I’d love to hear your feedback!

[1] https://developer.mozilla.org/en-US/docs/Web/API/FileSystemH... [2] https://manytricks.com/namemangler/

vicke4··on Show HN: Reddit List – Discover Subreddits for different topics
Is it made using super.so?
vicke4··on Show HN: Check the things that matter to you in the menubar
Thanks! Sure, I'll look into the panel placement issue.
vicke4··on Show HN: Check the things that matter to you in the menubar
I can understand your concern. But, I need to comply with Google APIs Terms of Service. https://developers.google.com/terms#b_confidential_matters

> You will keep your credentials confidential and make reasonable efforts to prevent and discourage other API Clients from using your credentials. Developer credentials may not be embedded in open source projects

vicke4··on Show HN: Check the things that matter to you in the menubar
I meant that for a fixed purchase. I'm still contemplating setting up subscription plans.
vicke4··on Show HN: Check the things that matter to you in the menubar
Sure. Without open-source projects, I would not have been able to build Radar. So, I wanted to give something back for the incredible work open-source maintainers are doing out there. Hence, the statement.

You will find it on the pricing page when Radar comes out of beta. The only thing I'm confused about is what kind of criteria I have to set before giving a free license to the person who wants to claim the offer? I'd appreciate it much if any of you guys can help set the criteria.

vicke4··on Show HN: Check the things that matter to you in the menubar
> How about a $0 starter tier for max. of x monitors, with a max freq. of every y hrs... then move up to a one-time fee that is more generous, but still constrained, and finally have a monthly fee that allows unlimited.

Yeah! That seems like a nice strategy. Do you think people will be ready to pay subscription for unlimited access?

vicke4··on Show HN: Check the things that matter to you in the menubar
Would love to hear more about your fix.
vicke4··on Show HN: Check the things that matter to you in the menubar
I haven't finalised the price. But, it'll be more than $20 for sure.
vicke4··on Show HN: Check the things that matter to you in the menubar
Thanks! I will check the issue.
vicke4··on Show HN: Check the things that matter to you in the menubar
Thanks! I will check it out. Please get in touch using the support link in the landing page so that, I can let you know once I fix the issue.
vicke4··on Show HN: Check the things that matter to you in the menubar
Sure. Will do that.
vicke4··on Show HN: Check the things that matter to you in the menubar
Added a 1-click installer to check HN karma points.
vicke4··on Show HN: Check the things that matter to you in the menubar
It's 1 minute.
vicke4··on Show HN: Check the things that matter to you in the menubar
Yeah. But, I felt this is better than opening multiple browser tabs and losing focus. So, I built this.
vicke4··on Show HN: Check the things that matter to you in the menubar
Will add the Hackernews 1-click installer to check karma points ;)
vicke4··on Show HN: Check the things that matter to you in the menubar
How about the scriptable output? https://getradar.co/docs/customizing-value ;)
vicke4··on Show HN: Radar – Check important metrics with a single click
Thanks. I built it as a solution to my problem. Glad that you like it.
vicke4··on Why and How I run 5 different applications on the same server
Right. The blog post explains how to set it up from scratch and the work put in for automating stuff.
vicke4··on Show HN: Send email via Amazon SES and Sendgrid from your Google Sheets
Interesting! Do I need to have my own SES or Sendgrid account?
vicke4··on Show HN: I wrote a bookmarklet to know any Twitter poll result without your vote
More readable version of the code:

( function () {

    // Exiting if the webpage is not Twitter or a valid tweet
    if (window.location.origin !== 'https://twitter.com' || window.location.pathname.split('/').length !== 4) return alert('This is not a valid Twitter poll!');

    alert("Please wait this can take up to 30 seconds. Select OK or close to get started. If this is a valid poll, you will get the result when it is ready...:)");

    // This string will hold our poll result
    let result = '';
    // This boolean denotes if our job is done and if true, doesn't execute the addEventListener anymore.
    let processDone = false;
    let oldXHROpen = window.XMLHttpRequest.prototype.open;
    const startTime = Date.now();

    window.XMLHttpRequest.prototype.open = function () {
      if (processDone) {
        return oldXHROpen.apply(this, arguments);
      }

      // onLoad event handler to intercept the Twitter API response to read the poll results.
      function listenEvent() {
        try {
          if (this.responseURL.includes('poll')) {
            // JSON from the Twitter API response
            // On a poll page every 30 seconds, Twitter hits the API to retrieve the latest poll results
            const pollResultJson = JSON.parse(this.responseText);
            const pollBindingValues = pollResultJson.card.binding_values;
            const resultObj = Object.keys(pollBindingValues).reduce(function (accum, key) {
              if (key.includes('_label')) {
                const label = pollBindingValues[key].string_value;
                const choiceNumber = key.replace(/\D/g, '');
                const voteCount = pollBindingValues[`choice${choiceNumber}_count`].string_value;

                accum.choiceVoteCountMap[label] = +voteCount;
                accum.noOfVotes += +voteCount;
              }

              return accum;
            }, { noOfVotes: 0, choiceVoteCountMap: {} });

            const { choiceVoteCountMap, noOfVotes } = resultObj;
            Object.keys(choiceVoteCountMap).forEach(function (label) {
              result += `${label}: ${((choiceVoteCountMap[label] / noOfVotes) * 100).toFixed(2)}%\n`
            })
          }
        } catch (e) {
          processDone = true;
          // For error reporting. Incase if the bookmarklet fails to work in future, people will be able to report...:)
          if (window.confirm("Something went wrong. Could you please report the issue?")) {
            window.open("https://www.syncwithtech.org/twitter-poll-result-wo-voting/", "_blank");
          }

          this.removeEventListener('load', listenEvent);
        }
      }

      this.addEventListener('load', listenEvent);

      // If result holds proper string, we need to stop listening to the event
      if (result) {
        processDone = true;
        alert(result);

        this.removeEventListener('load', listenEvent);
      }

      // If the page is a proper tweet and doesn't have a poll, we must stop listening to the load event. It happens after 40 seconds.
      if (Date.now() - startTime > 40000 && !processDone) {
        processDone = true;

        // To get feedback if it's actually a poll and the script fails to detect it
        if (window.confirm("Seems like it is not a valid Twitter poll. Press OK to report the issue if it is a valid poll and the bookmarklet failed to detect it.")) {
          window.open("https://www.syncwithtech.org/twitter-poll-result-wo-voting/", "_blank");
        }

        this.removeEventListener('load', listenEvent);
      }

      return oldXHROpen.apply(this, arguments);
    }
  }
)();
vicke4··on Show HN: I wrote a bookmarklet to know any Twitter poll result without your vote
Hey guys,

I wanted to check the Twitter poll results before voting for one of the choices. So, I wrote a bookmarklet which opens an alert with the poll results when used on an ongoing Twitter poll page. The script just intercepts the API requests Twitter make to fetch poll results every 30 seconds and populates the result. You can find the script as a gist: https://gist.github.com/vicke4/891b14bbf46f247fb7314cb3565d1...

To test the bookmarklet you need to find a poll. You can get only polls as results when you search for one of the below queries,

card_name:poll2choice_text_only

card_name:poll3choice_text_only

card_name:poll4choice_text_only

card_name:poll2choice_image

card_name:poll3choice_image

card_name:poll4choice_image

On the mobile app, you can just turn off your data/WiFi and select one of the choices, you'll be able to see the results for a moment.

vicke4··on How to Know a Twitter Poll Result Without Voting
Hey guys,

I wanted to check the Twitter poll results before voting for one of the choices. So, I wrote a bookmarklet which opens an alert with the poll results when used on an ongoing Twitter poll page. The script just intercepts the API requests Twitter make to fetch poll results every 30 seconds and populates the result. You can find the script as a gist: https://gist.github.com/vicke4/891b14bbf46f247fb7314cb3565d1....

To test the bookmarklet you need to find a poll. You can get only polls as results when you search for one of the below queries,

card_name:poll2choice_text_only

card_name:poll3choice_text_only

card_name:poll4choice_text_only

card_name:poll2choice_image

card_name:poll3choice_image

card_name:poll4choice_image

On the mobile app, you can just turn off your data/WiFi and select one of the choices, you'll be able to see the results for a moment.

vicke4··on Show HN: I built a mini Social Blade on top of Google Sheets
Thank you so much!
vicke4··on Show HN: I built a mini Social Blade on top of Google Sheets
Hey guys,

This Sheets add-on pulls various metrics like the number of views, likes, subscribers, etc for any YouTube videos/channels.

vicke4··on Show HN: YT Tracker – Export real-time YouTube Metrics to Google Sheet
Hi,

This add-on exports metrics of any YouTube public video/channel to Google Sheet. It can also export metrics of all videos of a channel.

YouTube video: https://www.youtube.com/watch?v=1V34z9tOxxE

vicke4··on Show HN: Drive Explorer – Export Your Google Drive Files to Google Sheet
Hi guys developer here,

5 years ago I wrote a simple tool: https://syncwithtech.blogspot.com/p/direct-download-link-gen... with HTML, CSS, JS to generate direct download links of Google Drive files from the share link. It is a simple string manipulation tool that is good for one or two files.

To automate the process, last year I launched the first version of Drive Explorer, it just exported the direct links and names of the files to the sheet. It was well received by the users and they started giving feedbacks and suggestions to make it better. After a lot of iterations and feature additions, we are here now.

Use cases:

If you use Google Drive a lot at work, Drive Explorer can save you a lot of time and increase your productivity. People use Drive Explorer for variety of purposes. Some use it to manage their inventory. Some use it to share direct download links of files with their customers.

With Drive Explorer,

You can see all your files from different folders in a sheet tab instead of going back and forth on your Google Drive. You can sort your files on tab based on name, size, created date, modified date, last viewed date either in ascending or descending order. This makes searching of files easy and saves you a lot of time.

You can fetch nested files & folders. Just pick the parent folder and tick a checkbox when exporting.

You can export files fast. A test run proved it can export 1000 files in approximately 16 seconds.

You will be able to share files and get share link or change the existing share settings directly from the sheet.

List of fields Drive Explorer can export:

Folder name, Folder Path, Filename, Preview Link, Direct Link, Share Status, File Size, Owner, Viewers, Commenters, Editors, Created At, Last Modified At, Export PDF Link, Export ePub Link, Export CSV Link, Export ZIP Link, Export DOCX Link, Export XLSX Link, Filetype, Width, Height, Video Duration, File Extension.

Link to written tutorial - https://www.syncwithtech.org/google-drive-direct-links/ YouTube video - https://youtu.be/wMFC2r241f8/ What other features you would like? Your feedback is most welcome.