Skip to content

Instantly share code, notes, and snippets.

View saiday's full-sized avatar
:shipit:
su su su

Saiday saiday

:shipit:
su su su
View GitHub Profile
@saiday
saiday / clear_kotlin_web_view_cache.kt
Created August 20, 2019 10:34
Clear Android web view cache
//helper method for clearCache() , recursive
//returns number of deleted files
fun clearCacheFolder(dir: File?, numDays: Int): Int {
var deletedFiles = 0
if (dir != null && dir!!.isDirectory()) {
try {
for (child in dir!!.listFiles()) {
//first delete subdirectories recursively
@saiday
saiday / signals.py
Created August 10, 2019 16:17
edited create profile signals (from: https://www.youtube.com/watch?v=FdVuKt_iuSI)
from django.contrib.auth.models import User
from django.db.models.signals import post_save
from django.dispatch import receiver
from users.models import Profile
@receiver(post_save, sender=User)
def create_profile(sender, instance, created, **kwargs):
if created:
@saiday
saiday / gist:65205f1d3663f45cf77409213e214cf0
Last active May 10, 2019 10:05
HLS download composition
ffmpeg -i "https://**.m3u8" -c copy -bsf:a aac_adtstoasc "output.mp4"
ffmpeg -i "https://**.m3u8" -c copy -bsf:v h264_mp4toannexb "output.mp4"
@saiday
saiday / server.py
Created December 22, 2018 12:26
user-agent viewer server
#!/usr/bin/env python
from http.server import SimpleHTTPRequestHandler
from socketserver import TCPServer
import logging
PORT = 8000
class GetHandler(SimpleHTTPRequestHandler):
...
@Override
public void setPrimaryItem(@NonNull ViewGroup container, int position, @NonNull Object object) {
super.setPrimaryItem(container, position, object);
NestedScrollView current = ((NestedScrollView)object);
current.setNestedScrollingEnabled(true);
for (int i = 0; i < getCount(); i++) {
if (i != position) {
NestedScrollView otherScrollView = container.findViewWithTag(i);
@saiday
saiday / mp4_to_gif.sh
Last active July 29, 2019 06:57
convert mp4 video to gif
# dependencies:
# - ffmpeg
# - imagemagick
# Usage:
mkdir mp4_to_gif
ffmpeg -i myfile.mp4 -vf scale=1024:-1:flags=lanczos,fps=10 mp4_to_gif/ffout%03d.png
convert -loop 0 mp4_to_gif/ffout*.png output.gif
rm -rf mp4_to_gif
@saiday
saiday / playground.go
Created February 11, 2018 12:41
Golang remove first differences between slice value and pointer
package main
import "fmt"
func main() {
s := []int{2, 3, 5, 7, 11, 13}
printSlice(s)
removeFirst(s)
printSlice(s)
@saiday
saiday / MockitoConfiguration.java
Created January 27, 2018 16:32
MockitoConfiguration
package org.mockito.configuration;
import org.mockito.internal.stubbing.defaultanswers.ReturnsEmptyValues;
import org.mockito.invocation.InvocationOnMock;
import org.mockito.stubbing.Answer;
import rx.Observable;
import rx.Single;
/**
@saiday
saiday / script.bash
Created April 25, 2017 19:06
Add specific GoogleService-Info.plist
if [ "${CONFIGURATION}" == "Release" ]; then
cp -r "${PROJECT_DIR}/{PATH}/GoogleService-Info-release.plist" "${BUILT_PRODUCTS_DIR}/${PRODUCT_NAME}.app/GoogleService-Info.plist"
echo "Production plist copied"
elif [ "${CONFIGURATION}" == "Debug" ]; then
cp -r "${PROJECT_DIR}/{PATH}/GoogleService-Info-debug.plist" "${BUILT_PRODUCTS_DIR}/${PRODUCT_NAME}.app/GoogleService-Info.plist"
echo "Development plist copied"
@saiday
saiday / AndroidManifest.xml
Created March 21, 2017 14:48
Android Intents on manifest
<activity ..>
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data android:scheme="http" />
<data android:scheme="https" />
<data android:host="www.mysite.com" />
</intent-filter>
</activity>