Implement downloading particular month.
This commit is contained in:
		
							parent
							
								
									41b218613a
								
							
						
					
					
						commit
						9ca16fe6c5
					
				
					 1 changed files with 77 additions and 8 deletions
				
			
		|  | @ -1,8 +1,8 @@ | ||||||
| #!/bin/sh | #!/bin/sh | ||||||
| # | # | ||||||
| # fetch_fio.sh | # fetch_fio_fine.sh | ||||||
| # | # | ||||||
| # Fio API account statements fetcher. | # Fio API fine-grained account statements fetcher. | ||||||
| # | # | ||||||
| # ISC License | # ISC License | ||||||
| # | # | ||||||
|  | @ -148,16 +148,85 @@ download_file() { | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| # | # | ||||||
| # Downloads single year | # Leap year? | ||||||
|  | leap_year() { | ||||||
|  |     YEAR="$1" | ||||||
|  |     ym4=`expr "$YEAR" % 4` | ||||||
|  |     ym100=`expr "$YEAR" % 100` | ||||||
|  |     ym400=`expr "$YEAR" % 400` | ||||||
|  |     if [ $ym4 = 0 ] ; then | ||||||
|  | 	# Maybe | ||||||
|  | 	if ! [ $ym100 = 0 ] ; then | ||||||
|  | 	    # Leap | ||||||
|  | 	    return 0 | ||||||
|  | 	else | ||||||
|  | 	    # Maybe | ||||||
|  | 	    if [ $ym400 = 0 ] ; then | ||||||
|  | 		# Leap | ||||||
|  | 		return 0 | ||||||
|  | 	    else | ||||||
|  | 		# Not leap | ||||||
|  | 		return 1 | ||||||
|  | 	    fi | ||||||
|  | 	fi | ||||||
|  |     else | ||||||
|  | 	# Not leap | ||||||
|  | 	return 1 | ||||||
|  |     fi | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | # | ||||||
|  | # Returns the last day of given month in Fio format | ||||||
|  | # $1 - year | ||||||
|  | # $2 - month | ||||||
|  | # $3 - if non-empty, return ISO | ||||||
|  | end_of_month() { | ||||||
|  |     YEAR="$1" | ||||||
|  |     MONTH="$2" | ||||||
|  |     case $MONTH in | ||||||
|  | 	01) DAY=31 ;; | ||||||
|  | 	02) | ||||||
|  | 	    DAY=$( | ||||||
|  | 		if leap_year $YEAR ; then | ||||||
|  | 		    echo 29 | ||||||
|  | 		else | ||||||
|  | 		    echo 28 | ||||||
|  | 		fi | ||||||
|  | 	       ) | ||||||
|  | 	    ;; | ||||||
|  | 	03) DAY=31 ;; | ||||||
|  | 	04) DAY=30 ;; | ||||||
|  | 	05) DAY=31 ;; | ||||||
|  | 	06) DAY=30 ;; | ||||||
|  | 	07) DAY=31 ;; | ||||||
|  | 	08) DAY=31 ;; | ||||||
|  | 	09) DAY=30 ;; | ||||||
|  | 	10) DAY=31 ;; | ||||||
|  | 	11) DAY=30 ;; | ||||||
|  | 	12) DAY=31 ;; | ||||||
|  |     esac | ||||||
|  |     if [ -z "$3" ] ; then | ||||||
|  | 	echo "$DAY.$MONTH.$YEAR" | ||||||
|  |     else | ||||||
|  | 	echo "$YEAR-$MONTH-$DAY" | ||||||
|  |     fi | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | # | ||||||
|  | # Downloads single year month | ||||||
| # $1 - apikey | # $1 - apikey | ||||||
| # $2 - year | # $2 - year | ||||||
| # $3 - destination file name | # $3 - month - must be in MM format already | ||||||
| download_year() { | # $4 - destination file name | ||||||
|  | download_year_month() { | ||||||
|     apikey="$1" |     apikey="$1" | ||||||
|     year="$2" |     year="$2" | ||||||
|     fname="$3" |     month="$3" | ||||||
|     log "Downloading ${APIURI}/periods/.../$year-01-01/$year-12-31/transactions.csv to $fname" |     fname="$4" | ||||||
|     download_file "${APIURI}/periods/$apikey/$year-01-01/$year-12-31/transactions.csv" "$fname" |     STARTDATE="$year-$month-01" | ||||||
|  |     ENDDATE=`end_of_month $year $month 1` | ||||||
|  |     log "Downloading ${APIURI}/periods/.../$STARTDATE/$ENDDATE/transactions.csv to $fname" | ||||||
|  |     download_file "${APIURI}/periods/$apikey/$STARTDATE/$ENDDATE/transactions.csv" "$fname" | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| # | # | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue